diff options
Diffstat (limited to 'apps/UnsetEnv.hs')
-rw-r--r-- | apps/UnsetEnv.hs | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/apps/UnsetEnv.hs b/apps/UnsetEnv.hs deleted file mode 100644 index f60503b..0000000 --- a/apps/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 Prompt -import 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 |