Current section

Files

Jump to
gleam_stdlib gen src gleam@os.erl
Raw

gen/src/gleam@os.erl

-module(gleam@os).
-compile(no_auto_import).
-export([get_env/0, insert_env/2, delete_env/1, system_time/1, erlang_timestamp/0]).
-export_type([char_list/0, time_unit/0]).
-type char_list() :: any().
-type time_unit() :: second | millisecond | microsecond | nanosecond.
-spec get_env() -> gleam@map:map_(binary(), binary()).
get_env() ->
gleam@map:from_list(
gleam@list:map(
os:getenv(),
fun(Char_list) ->
{ok, Value@1} = case gleam@string:split_once(
unicode:characters_to_binary(Char_list),
<<"="/utf8>>
) of
{ok, Value} -> {ok, Value};
Gleam@Assert ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => Gleam@Assert,
module => <<"gleam/os"/utf8>>,
function => <<"get_env"/utf8>>,
line => 30})
end,
Value@1
end
)
).
-spec insert_env(binary(), binary()) -> nil.
insert_env(Key, Value) ->
os:putenv(
unicode:characters_to_list(Key),
unicode:characters_to_list(Value)
),
nil.
-spec delete_env(binary()) -> nil.
delete_env(Key) ->
os:unsetenv(unicode:characters_to_list(Key)),
nil.
-spec system_time(time_unit()) -> integer().
system_time(A) ->
os:system_time(A).
-spec erlang_timestamp() -> {integer(), integer(), integer()}.
erlang_timestamp() ->
os:timestamp().