aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/Prompt.hs
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2017-03-26 15:31:08 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2017-03-26 15:31:08 +0300
commit136d7d82cdab45b50cafc7c3f53cac7805e3cb7c (patch)
treea99c6bba50ade7cbb55fac0b53608cb60f2c8725 /bin/Prompt.hs
parentrename directories (diff)
downloadwindows-env-136d7d82cdab45b50cafc7c3f53cac7805e3cb7c.tar.gz
windows-env-136d7d82cdab45b50cafc7c3f53cac7805e3cb7c.zip
put utility modules to bin/Utils/
Diffstat (limited to 'bin/Prompt.hs')
-rw-r--r--bin/Prompt.hs50
1 files changed, 0 insertions, 50 deletions
diff --git a/bin/Prompt.hs b/bin/Prompt.hs
deleted file mode 100644
index 404c582..0000000
--- a/bin/Prompt.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- |
--- Copyright : (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
--- License : MIT
--- Maintainer : Egor.Tensin@gmail.com
--- Stability : experimental
--- Portability : portable
-
-module Prompt
- ( withPrompt
- , withoutPrompt
- ) where
-
-import Control.Monad (void, when)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Except (ExceptT)
-import Data.Char (toLower)
-import System.IO (hFlush, stdout)
-
-prompt :: String -> IO String
-prompt msg = do
- putStr msg
- hFlush stdout
- getLine
-
-promptYesNo :: String -> IO Bool
-promptYesNo msg = do
- response <- map toLower <$> prompt msg
- if response `elem` yeses
- then return True
- else if response `elem` noes
- then return False
- else promptToContinue
- where
- yeses = ["y", "yes"]
- noes = ["n", "no"]
-
-promptToContinue :: IO Bool
-promptToContinue = promptYesNo "Continue? (y/n) "
-
-withPrompt :: String -> ExceptT IOError IO a -> ExceptT IOError IO Bool
-withPrompt msg m = do
- lift $ do
- putStr msg
- hFlush stdout
- agreed <- lift promptToContinue
- when agreed $ void m
- return agreed
-
-withoutPrompt :: ExceptT IOError IO a -> ExceptT IOError IO Bool
-withoutPrompt m = m >> return True