aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apps/Utils.hs
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2016-07-18 00:43:21 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2016-07-18 00:43:21 +0300
commitbe9299d2dc8e0a9e76fe6f07cabb15c144999710 (patch)
tree91a68cd35e78c612eb358181f24e91fda904e766 /apps/Utils.hs
parentput modules to 'Windows' (diff)
downloadwindows-env-be9299d2dc8e0a9e76fe6f07cabb15c144999710.tar.gz
windows-env-be9299d2dc8e0a9e76fe6f07cabb15c144999710.zip
refactoring
Diffstat (limited to 'apps/Utils.hs')
-rw-r--r--apps/Utils.hs66
1 files changed, 0 insertions, 66 deletions
diff --git a/apps/Utils.hs b/apps/Utils.hs
deleted file mode 100644
index e34950f..0000000
--- a/apps/Utils.hs
+++ /dev/null
@@ -1,66 +0,0 @@
-{-
- - 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
- ( withPrompt
- , withoutPrompt
-
- , engraveBanner
- , wipeBanner
- ) where
-
-import Control.Monad (liftM, void, when)
-import Data.Maybe (fromJust, isJust)
-import Data.Char (toLower)
-import System.IO (hFlush, stdout)
-import Text.Printf (printf)
-
-import Windows.Environment (Profile, profileKeyPath, VarName, VarValue)
-
-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) "
-
-withPrompt :: String -> IO a -> IO Bool
-withPrompt banner m = do
- putStr banner
- hFlush stdout
- agreed <- promptToContinue
- when agreed $ void m
- return agreed
-
-withoutPrompt :: IO a -> IO Bool
-withoutPrompt m = m >> return True
-
-engraveBanner :: Profile -> VarName -> Maybe VarValue -> VarValue -> String
-engraveBanner profile name oldValue newValue =
- header ++ values
- where
- header = printf "Saving variable '%s' to '%s'...\n" name (profileKeyPath profile)
- values = if isJust oldValue
- then printf "\tOld value: %s\n\tNew value: %s\n" (fromJust oldValue) newValue
- else printf "\tValue: %s\n" newValue
-
-wipeBanner :: Profile -> VarName -> String
-wipeBanner profile name =
- printf "Deleting variable '%s' from '%s'...\n" name (profileKeyPath profile)