8ea5f3ff99
Eliminated some dead code. In other cases, exported a currently unused function, since it was a logical part of the API. Of course this improves the API documentation. It may also sometimes let ghc optimize code better, since it can know a function is internal to a module. 364 modules still to go, according to git grep -E 'module [A-Za-z.]+ where'
43 lines
888 B
Haskell
43 lines
888 B
Haskell
{- portable environment variables
|
|
-
|
|
- Copyright 2013 Joey Hess <id@joeyh.name>
|
|
-
|
|
- License: BSD-2-clause
|
|
-}
|
|
|
|
{-# LANGUAGE CPP #-}
|
|
|
|
module Utility.Env.Set (
|
|
setEnv,
|
|
unsetEnv,
|
|
) where
|
|
|
|
#ifdef mingw32_HOST_OS
|
|
import qualified System.SetEnv
|
|
import Utility.Env
|
|
#else
|
|
import qualified System.Posix.Env as PE
|
|
#endif
|
|
|
|
{- Sets an environment variable. To overwrite an existing variable,
|
|
- overwrite must be True.
|
|
-
|
|
- On Windows, setting a variable to "" unsets it. -}
|
|
setEnv :: String -> String -> Bool -> IO ()
|
|
#ifndef mingw32_HOST_OS
|
|
setEnv var val overwrite = PE.setEnv var val overwrite
|
|
#else
|
|
setEnv var val True = System.SetEnv.setEnv var val
|
|
setEnv var val False = do
|
|
r <- getEnv var
|
|
case r of
|
|
Nothing -> setEnv var val True
|
|
Just _ -> return ()
|
|
#endif
|
|
|
|
unsetEnv :: String -> IO ()
|
|
#ifndef mingw32_HOST_OS
|
|
unsetEnv = PE.unsetEnv
|
|
#else
|
|
unsetEnv = System.SetEnv.unsetEnv
|
|
#endif
|