From 82345d88d5941a726295b213ae73ac99a22848d4 Mon Sep 17 00:00:00 2001 From: Robin Heggelund Hansen Date: Sat, 22 Jun 2024 22:03:00 +0200 Subject: [PATCH] Don't prompt user if terminal is non-interactive. --- builder/src/Reporting.hs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/builder/src/Reporting.hs b/builder/src/Reporting.hs index 0b0bf0c7..02a4c235 100644 --- a/builder/src/Reporting.hs +++ b/builder/src/Reporting.hs @@ -31,6 +31,7 @@ where import Control.Concurrent import Control.Exception (AsyncException (UserInterrupt), SomeException, catch, fromException, throw) +import GHC.IO.Handle (hIsTerminalDevice) import Control.Monad (when) import Data.ByteString.Builder qualified as B import Data.NonEmptyList qualified as NE @@ -130,11 +131,13 @@ ignorer = ask :: Bool -> D.Doc -> IO Bool ask skipPrompts doc = - if skipPrompts - then pure True - else do - Help.toStdout doc - askHelp + do + interactive <- hIsTerminalDevice stdout + if skipPrompts || not interactive + then pure True + else do + Help.toStdout doc + askHelp askHelp :: IO Bool askHelp =