base-4.10.0.0: Basic libraries

Copyright(c) Habib Alamin 2017
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

System.Environment.Blank

Description

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:

  • support putenv(FOO) to unset environment variables,
  • support putenv("FOO=") to unset environment variables or set them to blank values,
  • support unsetenv to unset environment variables,
  • support setenv to set environment variables,
  • etc.

is very complicated. I think AIX is screwed, but we don't support it. The whole situation with setenv(3), unsetenv(3), and putenv(3) is not good. Even mingw32 adds its own crap to the pile, but luckily, we can just use Windows' native environment functions to sidestep the issue.

#12494

Synopsis

Documentation

getEnvDefault Source #

Arguments

:: String

variable name

-> String

fallback value

-> IO String

variable value or fallback value

Get an environment value or a default value.

setEnv Source #

Arguments

:: String

variable name

-> String

variable value

-> Bool

overwrite

-> IO () 

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.