Env
The Env module provides access to environment variables and system information.
Environment Variables
Env.get
String -> Option String
Returns the value of an environment variable, or None if not set.
match Env.get "HOME"
| Some home -> println "Home: ${home}"
| None -> println "HOME not set"
Env.get-path
String -> Option String
Returns the value of an environment variable as a path, expanding
~ to the home directory. Returns None if not set.
# If MY_PATH is set to "~/Documents/project"
match Env.get-path "MY_PATH"
| Some path -> println "Path: ${path}"
| None -> println "MY_PATH not set"
# => "Path: /home/user/Documents/project"
Env.set
String -> String -> Bool
Sets an environment variable. Returns
true on success.
Env.set "MY_VAR" "value"
Env.remove
String -> Bool
Removes an environment variable. Returns
true on success.
Directories
Env.home-dir
() -> Option String
Returns the user's home directory.
home = Env.home-dir
println home
# => Some "/home/user"
Env.current-dir
() -> Option String
Returns the current working directory.
cwd = Env.current-dir
println cwd
# => Some "/home/user/project"
System Information
Env.hostname
() -> Option String
Returns the system hostname.
match Env.hostname()
| Some name -> println "Host: ${name}"
| None -> println "Unknown host"
# => "Host: my-laptop"
Env.username
() -> Option String
Returns the current user's username.
match Env.username()
| Some user -> println "User: ${user}"
| None -> println "Unknown user"
# => "User: alice"
Command Line Arguments
Env.args
() -> List String
Returns the command line arguments passed to the program.
args = Env.args()
args |> each (fn(arg) => println "Arg: ${arg}")