Don't prompt user if terminal is non-interactive.

This commit is contained in:
Robin Heggelund Hansen 2024-06-22 22:03:00 +02:00
parent 51980e2de9
commit 82345d88d5
No known key found for this signature in database

View File

@ -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 =