aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apps/SetEnv.hs
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2017-03-25 05:56:02 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2017-03-25 05:56:02 +0300
commit80f6847645459dfd21e531946e1eeaf2384a2dff (patch)
tree8a93e818fe647974bd724be08092e9475d03425f /apps/SetEnv.hs
parentadd README to the package (diff)
downloadwindows-env-80f6847645459dfd21e531946e1eeaf2384a2dff.tar.gz
windows-env-80f6847645459dfd21e531946e1eeaf2384a2dff.zip
rename directories
Diffstat (limited to 'apps/SetEnv.hs')
-rw-r--r--apps/SetEnv.hs72
1 files changed, 0 insertions, 72 deletions
diff --git a/apps/SetEnv.hs b/apps/SetEnv.hs
deleted file mode 100644
index 87d7812..0000000
--- a/apps/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 Prompt
-import 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