Portability | portable |
---|---|
Stability | provisional |
Maintainer | libraries@haskell.org |
Safe Haskell | Safe |
Miscellaneous information about the system environment.
Documentation
Computation getArgs
returns a list of the program's command
line arguments (not including the program name).
getProgName :: IO String
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.
getExecutablePath :: IO FilePath
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.)
Computation getEnv
var
returns the value
of the environment variable var
. For the inverse, POSIX users
can use putEnv
.
This computation may fail with:
-
isDoesNotExistError
if the environment variable does not exist.
lookupEnv :: String -> IO (Maybe String)
Return the value of the environment variable var
, or Nothing
if
there is no such value.
For POSIX users, this is equivalent to getEnv
.
withProgName :: String -> IO a -> IO a
withProgName
name act
- while executing action act
,
have getProgName
return name
.
getEnvironment :: IO [(String, String)]
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.