diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2016-07-11 18:55:26 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2016-07-11 18:55:26 +0300 |
commit | d53c986113cef78e2b504ecd5a4bba60999a55e1 (patch) | |
tree | 445b892abcfa272153dc39968838dbdc5d34d684 /src/Utils.hs | |
parent | README update (diff) | |
download | windows-env-d53c986113cef78e2b504ecd5a4bba60999a55e1.tar.gz windows-env-d53c986113cef78e2b504ecd5a4bba60999a55e1.zip |
become a proper stack project
Diffstat (limited to 'src/Utils.hs')
-rw-r--r-- | src/Utils.hs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/Utils.hs b/src/Utils.hs new file mode 100644 index 0000000..21ee67b --- /dev/null +++ b/src/Utils.hs @@ -0,0 +1,32 @@ +{- + - Copyright 2015 Egor Tensin <Egor.Tensin@gmail.com> + - This file is licensed under the terms of the MIT License. + - See LICENSE.txt for details. +-} + +module Utils where + +import Control.Monad ( liftM ) +import Data.Char ( toLower ) +import System.IO ( hFlush, stdout ) + +prompt :: String -> IO String +prompt banner = do + putStr banner + hFlush stdout + getLine + +promptYesNo :: String -> IO Bool +promptYesNo banner = do + response <- liftM (map toLower) $ prompt banner + 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) " |