21 lines
577 B
Haskell
21 lines
577 B
Haskell
|
{-# LANGUAGE OverloadedStrings #-}
|
||
|
module GHCup.Prompts
|
||
|
(module GHCup.Types.Prompts,
|
||
|
getUserPromptResponse)
|
||
|
where
|
||
|
|
||
|
import GHCup.Types.Prompts
|
||
|
import qualified Data.Text.IO as TIO
|
||
|
import Control.Monad.IO.Class (MonadIO, liftIO)
|
||
|
|
||
|
putPrompt :: MonadIO m => PromptQuestion -> m ()
|
||
|
putPrompt prompt = liftIO $ TIO.putStrLn prompt
|
||
|
|
||
|
getUserPromptResponse :: (MonadIO m) => PromptQuestion -> m PromptResponse
|
||
|
getUserPromptResponse prompt = do
|
||
|
putPrompt prompt
|
||
|
resp <- liftIO TIO.getLine
|
||
|
if resp `elem` ["YES", "yes", "y", "Y"]
|
||
|
then pure PromptYes
|
||
|
else pure PromptNo
|