Current section

Files

Jump to
geas src geas_config.hrl
Raw

src/geas_config.hrl

%%-------------------------------------------------------------------------
%% @doc Get cached config, otherwise cache it
%% @since 2.5
%% @end
%%-------------------------------------------------------------------------
get_config() ->
case get(geas_conf) of
C when is_record(C, config)
-> C ;
_ -> set_config()
end.
%%-------------------------------------------------------------------------
%% @doc Set config from rebar3 config and/or environment variables
%% @since 2.5
%% GEAS_USE_SRC boolean [0 / 1] Use source code instead beam files ...
%% GEAS_MY_RELS string Erlang release list List possible releases ...
%% GEAS_EXC_RELS string Erlang release list Exclude some releases ...
%% GEAS_DISC_RELS boolean [0 / 1] Show discarded buggy Erlang releases ...
%% GEAS_LOG string Log level list Log informations ...
%% GEAS_TIPS boolean [0 / 1] Give tips on patches to apply
%% @end
%%-------------------------------------------------------------------------
set_config() -> set_config([]).
set_config(Conf) ->
Use_src = normalize_boolean(proplists:get_value(use_src, Conf, os:getenv("GEAS_USE_SRC"))),
My_rels = proplists:get_value(my_rels, Conf, os:getenv("GEAS_MY_RELS")),
Exc_rels = proplists:get_value(exc_rels, Conf, os:getenv("GEAS_EXC_RELS")),
Disc_rels = normalize_boolean(proplists:get_value(disc_rels, Conf, os:getenv("GEAS_DISC_RELS"))),
Log = proplists:get_value(log, Conf, os:getenv("GEAS_LOG")),
Tips = normalize_boolean(proplists:get_value(tips, Conf, os:getenv("GEAS_TIPS"))),
Range = proplists:get_value(range, Conf, os:getenv("GEAS_RANGE")),
C = #config{ use_src = Use_src
, my_rels = My_rels
, exc_rels = Exc_rels
, disc_rels = Disc_rels
, log = Log
, tips = Tips
, range = Range
},
put(geas_conf, C),
C.