summaryrefslogtreecommitdiff
path: root/libraries/base/tests/T12494.hs
blob: 544f5ed908cefbfc9acd56185f41517bc073136b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import System.Environment.Blank

main = do
  let envVar = "AN_ENVIRONMENT_VARIABLE"

  valueBeforeSettingVariable <- getEnv envVar
  print valueBeforeSettingVariable -- Nothing

  valueWithDefaultBeforeSetting <- getEnvDefault envVar "DEFAULT"
  print valueWithDefaultBeforeSetting -- "DEFAULT"

  setEnv envVar "" False

  valueAfterSettingVariable <- getEnv envVar
  print valueAfterSettingVariable -- Just ""

  valueWithDefaultAfterSetting <- getEnvDefault envVar "DEFAULT"
  print valueWithDefaultAfterSetting -- ""

  valueFromGetEnvironment <- lookup envVar <$> getEnvironment
  print valueFromGetEnvironment -- Just ""

  setEnv envVar "NO_OVERRIDE" False

  valueAfterSettingWithExistingValueAndOverrideFalse <- getEnv envVar
  print valueAfterSettingWithExistingValueAndOverrideFalse -- Just ""

  setEnv envVar "OVERRIDE" True

  valueAfterSettingWithExistingValueAndOverrideTrue <- getEnv envVar
  print valueAfterSettingWithExistingValueAndOverrideTrue -- Just "OVERRIDE"

  unsetEnv envVar

  valueAfterUnsettingVariable <- getEnv envVar
  print valueAfterUnsettingVariable -- Nothing