Copyright | (c) Habib Alamin 2017 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | [email protected] |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
A setEnv implementation that allows blank environment variables. Mimics the Env
module from the unix
package, but with support for Windows too.
The matrix of platforms that:
putenv(FOO)
to unset environment variables,putenv("FOO=")
to unset environment variables or set them to blank values,unsetenv
to unset environment variables,setenv
to set environment variables,is very complicated. Some platforms don't support unsetting of environment variables at all.
getExecutablePath :: IO FilePath Source
Returns the absolute pathname of the current executable.
Note that for scripts and interactive sessions, this is the path to the interpreter (e.g. ghci.)
Since base 4.11.0.0, getExecutablePath
resolves symlinks on Windows. If an executable is launched through a symlink, getExecutablePath
returns the absolute path of the original executable.
Since: base-4.6.0.0
Computation getArgs
returns a list of the program's command line arguments (not including the program name).
getProgName :: IO String Source
Computation getProgName
returns the name of the program as it was invoked.
However, this is hard-to-impossible to implement on some non-Unix OSes, so instead, for maximum portability, we just return the leafname of the program as invoked. Even then there are some differences between platforms: on Windows, for example, a program invoked as foo is probably really FOO.EXE
, and that is what getProgName
will return.
withArgs :: [String] -> IO a -> IO a Source
withArgs
args act
- while executing action act
, have getArgs
return args
.
withProgName :: String -> IO a -> IO a Source
withProgName
name act
- while executing action act
, have getProgName
return name
.
getEnvironment :: IO [(String, String)] Source
getEnvironment
retrieves the entire environment as a list of (key,value)
pairs.
If an environment entry does not contain an '='
character, the key
is the whole entry and the value
is the empty string.
getEnv :: String -> IO (Maybe String) Source
Similar to lookupEnv
.
:: String | variable name |
-> String | fallback value |
-> IO String | variable value or fallback value |
Get an environment value or a default value.
Like setEnv
, but allows blank environment values and mimics the function signature of setEnv
from the unix
package.
unsetEnv :: String -> IO () Source
Like unsetEnv
, but allows for the removal of blank environment variables. May throw an exception if the underlying platform doesn't support unsetting of environment variables.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.8.3/docs/html/libraries/base-4.13.0.0/System-Environment-Blank.html