Packages
gleam_erlang
0.27.0
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-rc1
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.18.0-rc1
retired
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Types and functions for programs running on Erlang!
Current section
Files
Jump to
Current section
Files
src/gleam/erlang/os.gleam
//// Access to the shell's environment variables
import gleam/dict.{type Dict}
/// Returns the list of all available environment variables as a list of key,
/// tuples.
///
/// ## Examples
///
/// ```gleam
/// get_all_env()
/// // -> dict.from_list([
/// // #("SHELL", "/bin/bash"),
/// // #("PWD", "/home/j3rn"),
/// // ...
/// // ])
/// ```
///
@external(erlang, "gleam_erlang_ffi", "get_all_env")
pub fn get_all_env() -> Dict(String, String)
/// Returns the value associated with the given environment variable name.
///
/// ## Examples
/// ```gleam
/// get_env("SHELL")
/// // -> "/bin/bash"
/// ```
///
/// ```gleam
/// get_env(name: "PWD")
/// // -> "/home/j3rn"
/// ```
///
@external(erlang, "gleam_erlang_ffi", "get_env")
pub fn get_env(name name: String) -> Result(String, Nil)
/// Associates the given value with the given environment variable name.
///
/// ## Examples
///
/// ```gleam
/// set_env("MYVAR", "MYVALUE")
/// // -> Nil
/// get_env("MYVAR")
/// // -> "MYVALUE"
/// ```
///
/// ```gleam
/// set_env(value: "MYVALUE", name: "MYVAR")
/// // -> Nil
/// get_env("MYVAR")
/// // -> "MYVALUE"
/// ```
///
@external(erlang, "gleam_erlang_ffi", "set_env")
pub fn set_env(name name: String, value value: String) -> Nil
/// Removes the environment variable with the given name.
///
/// Returns Nil regardless of whether the variable ever existed.
///
/// ## Examples
///
/// ```gleam
/// get_env("MYVAR")
/// // -> Ok("MYVALUE")
/// unset_env("MYVAR")
/// // -> Nil
/// get_env("MYVAR")
/// // -> Error(Nil)
/// ```
///
/// ```gleam
/// unset_env(name: "MYVAR")
/// // -> Nil
/// get_env("MYVAR")
/// // -> Error(Nil)
/// ```
@external(erlang, "gleam_erlang_ffi", "unset_env")
pub fn unset_env(name name: String) -> Nil
/// Represents operating system kernels
pub type OsFamily {
// The family which includes modern versions of the Windows operating system.
WindowsNt
// The family of operating systems based on the open source Linux kernel.
Linux
// The family of Apple operating systems such as macOS and iOS.
Darwin
// The family of operating systems based on the FreeBSD kernel.
FreeBsd
// An operating system kernel other than Linux, Darwin, FreeBSD, or NT.
Other(String)
}
/// Returns the kernel of the host operating system.
///
/// Unknown kernels are reported as `Other(String)`; e.g. `Other("sunos")`.
///
/// ## Examples
/// ```gleam
/// family()
/// // -> Linux
/// ```
///
/// ```gleam
/// family()
/// // -> Darwin
/// ```
///
/// ```gleam
/// family()
/// // -> Other("sunos")
/// ```
///
@external(erlang, "gleam_erlang_ffi", "os_family")
pub fn family() -> OsFamily