aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/UnsetEnv.hs
diff options
context:
space:
mode:
Diffstat (limited to 'bin/UnsetEnv.hs')
-rw-r--r--bin/UnsetEnv.hs66
1 files changed, 0 insertions, 66 deletions
diff --git a/bin/UnsetEnv.hs b/bin/UnsetEnv.hs
deleted file mode 100644
index 98b52e3..0000000
--- a/bin/UnsetEnv.hs
+++ /dev/null
@@ -1,66 +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
- } deriving (Eq, Show)
-
-optionParser :: Parser Options
-optionParser = Options
- <$> optYesDesc
- <*> optGlobalDesc
- <*> optNameDesc
- where
- optYesDesc = switch
- $ long "yes" <> short 'y'
- <> help "Skip confirmation prompt"
- optGlobalDesc = switch
- $ long "global" <> short 'g'
- <> help "Unset for all users"
- optNameDesc = argument str
- $ metavar "NAME"
- <> help "Variable name"
-
-main :: IO ()
-main = execParser parser >>= unsetEnv
- where
- parser = info (helper <*> optionParser) $
- fullDesc <> progDesc "Delete environment variables"
-
-unsetEnv :: Options -> IO ()
-unsetEnv options = runExceptT doUnsetEnv >>= either ioError return
- where
- varName = optName options
-
- forAllUsers = optGlobal options
- profile
- | forAllUsers = WindowsEnv.AllUsers
- | otherwise = WindowsEnv.CurrentUser
-
- skipPrompt = optYes options
- promptAnd
- | skipPrompt = withoutPrompt
- | otherwise = withPrompt $ wipeMessage profile varName
-
- wipe = WindowsEnv.wipe profile varName
-
- doUnsetEnv = void $ promptAnd wipe