aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/SetEnv.hs
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2017-03-26 19:03:03 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2017-03-26 19:03:03 +0300
commitb20d44c618f370a1998c70dd5708d9bbe4ed1c80 (patch)
tree0ec7e019648955a77e70163e6becdb06e78ca823 /bin/SetEnv.hs
parentput utility modules to bin/Utils/ (diff)
downloadwindows-env-b20d44c618f370a1998c70dd5708d9bbe4ed1c80.tar.gz
windows-env-b20d44c618f370a1998c70dd5708d9bbe4ed1c80.zip
rename directories
Diffstat (limited to 'bin/SetEnv.hs')
-rw-r--r--bin/SetEnv.hs72
1 files changed, 0 insertions, 72 deletions
diff --git a/bin/SetEnv.hs b/bin/SetEnv.hs
deleted file mode 100644
index 5948d3e..0000000
--- a/bin/SetEnv.hs
+++ /dev/null
@@ -1,72 +0,0 @@
--- |
--- Copyright : (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
--- License : MIT
--- Maintainer : Egor.Tensin@gmail.com
--- Stability : experimental
--- Portability : Windows-only
-
-module Main (main) where
-
-import Control.Monad (void)
-import Control.Monad.Trans.Except (runExceptT)
-import System.IO.Error (ioError)
-
-import Options.Applicative
-
-import qualified WindowsEnv
-
-import Utils.Prompt
-import Utils.PromptMessage
-
-data Options = Options
- { optYes :: Bool
- , optGlobal :: Bool
- , optName :: WindowsEnv.VarName
- , optValue :: WindowsEnv.VarValue
- } deriving (Eq, Show)
-
-optionParser :: Parser Options
-optionParser = Options
- <$> optYesDesc
- <*> optGlobalDesc
- <*> optNameDesc
- <*> optValueDesc
- where
- optYesDesc = switch
- $ long "yes" <> short 'y'
- <> help "Skip confirmation prompt"
- optGlobalDesc = switch
- $ long "global" <> short 'g'
- <> help "Set for all users"
- optNameDesc = argument str
- $ metavar "NAME"
- <> help "Variable name"
- optValueDesc = argument str
- $ metavar "VALUE"
- <> help "Variable value"
-
-main :: IO ()
-main = execParser parser >>= setEnv
- where
- parser = info (helper <*> optionParser) $
- fullDesc <> progDesc "Define environment variables"
-
-setEnv :: Options -> IO ()
-setEnv options = runExceptT doSetEnv >>= either ioError return
- where
- varName = optName options
- varValue = optValue options
-
- forAllUsers = optGlobal options
- profile
- | forAllUsers = WindowsEnv.AllUsers
- | otherwise = WindowsEnv.CurrentUser
-
- skipPrompt = optYes options
- promptAnd
- | skipPrompt = withoutPrompt
- | otherwise = withPrompt $ newMessage profile varName varValue
-
- engrave = WindowsEnv.engraveForce profile varName varValue
-
- doSetEnv = void $ promptAnd engrave