diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2017-03-26 19:03:03 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2017-03-26 19:03:03 +0300 |
commit | b20d44c618f370a1998c70dd5708d9bbe4ed1c80 (patch) | |
tree | 0ec7e019648955a77e70163e6becdb06e78ca823 /bin/SetEnv.hs | |
parent | put utility modules to bin/Utils/ (diff) | |
download | windows-env-b20d44c618f370a1998c70dd5708d9bbe4ed1c80.tar.gz windows-env-b20d44c618f370a1998c70dd5708d9bbe4ed1c80.zip |
rename directories
Diffstat (limited to 'bin/SetEnv.hs')
-rw-r--r-- | bin/SetEnv.hs | 72 |
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 |