taskell-1.3.5.0: src/UI/CLI.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module UI.CLI
( prompt
, promptYN
) where
import ClassyPrelude
import Data.Text.IO (hPutStrLn)
import System.Exit (exitFailure)
prompt :: Text -> IO Text
prompt s = do
putStr $ s ++ ": "
hFlush stdout -- prevents buffering
getLine
promptYN :: Text -> IO Bool
promptYN s = (==) "y" <$> prompt (s ++ " (y/n)")
exitWithErrorMessage :: Text -> IO ()
exitWithErrorMessage str = hPutStrLn stderr str >> void exitFailure