Current section
Files
Jump to
Current section
Files
src/glixir@utils.erl
-module(glixir@utils).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/glixir/utils.gleam").
-export([get_env_or/2, is_verbose/0, debug_log/2, always_log/2, debug_log_with_prefix/3, debug_info/1, debug_error/1, debug_warning/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Glixir utility functions\n"
" \n"
" Centralized utilities for environment detection, logging, and common helpers\n"
).
-file("src/glixir/utils.gleam", 10).
?DOC(" Get environment variable with fallback default\n").
-spec get_env_or(binary(), binary()) -> binary().
get_env_or(Key, Default) ->
gleam@option:unwrap(case envoy_ffi:get(Key) of
{ok, Val} ->
{some, Val};
{error, _} ->
none
end, Default).
-file("src/glixir/utils.gleam", 21).
?DOC(" Check if verbose logging is enabled via VERBOSE environment variable\n").
-spec is_verbose() -> boolean().
is_verbose() ->
get_env_or(<<"VERBOSE"/utf8>>, <<"false"/utf8>>) =:= <<"true"/utf8>>.
-file("src/glixir/utils.gleam", 27).
?DOC(
" Debug logging that respects VERBOSE environment variable\n"
" Only logs when VERBOSE=true, otherwise silent\n"
).
-spec debug_log(logging:log_level(), binary()) -> nil.
debug_log(Level, Message) ->
case is_verbose() of
true ->
logging:log(Level, Message);
false ->
nil
end.
-file("src/glixir/utils.gleam", 35).
?DOC(" Always log (for critical errors and important messages)\n").
-spec always_log(logging:log_level(), binary()) -> nil.
always_log(Level, Message) ->
logging:log(Level, Message).
-file("src/glixir/utils.gleam", 40).
?DOC(" Log with module prefix for better traceability\n").
-spec debug_log_with_prefix(logging:log_level(), binary(), binary()) -> nil.
debug_log_with_prefix(Level, Module_prefix, Message) ->
debug_log(
Level,
<<<<<<"["/utf8, Module_prefix/binary>>/binary, "] "/utf8>>/binary,
Message/binary>>
).
-file("src/glixir/utils.gleam", 49).
?DOC(" Helper for info-level debug logging\n").
-spec debug_info(binary()) -> nil.
debug_info(Message) ->
debug_log(info, Message).
-file("src/glixir/utils.gleam", 54).
?DOC(" Helper for error-level debug logging\n").
-spec debug_error(binary()) -> nil.
debug_error(Message) ->
debug_log(error, Message).
-file("src/glixir/utils.gleam", 59).
?DOC(" Helper for warning-level debug logging\n").
-spec debug_warning(binary()) -> nil.
debug_warning(Message) ->
debug_log(warning, Message).