|
|
@ -166,22 +166,32 @@ process_overlay(Config, ReltoolConfig) -> |
|
|
|
%% providing an additional file on the command-line. |
|
|
|
%% |
|
|
|
overlay_vars(Config, Vars0, ReltoolConfig) -> |
|
|
|
BaseVars = load_vars_file(proplists:get_value(overlay_vars, ReltoolConfig)), |
|
|
|
OverrideVars = load_vars_file(rebar_config:get_global(Config, |
|
|
|
overlay_vars, |
|
|
|
undefined)), |
|
|
|
M = fun(_Key, _Base, Override) -> Override end, |
|
|
|
BaseVars = load_vars_file([proplists:get_value(overlay_vars, ReltoolConfig)]), |
|
|
|
OverlayVars = rebar_config:get_global(Config, overlay_vars, []), |
|
|
|
OverrideVars = load_vars_file(string:tokens(OverlayVars, ",")), |
|
|
|
M = fun merge_overlay_var/3, |
|
|
|
dict:merge(M, dict:merge(M, Vars0, BaseVars), OverrideVars). |
|
|
|
|
|
|
|
merge_overlay_var(_Key, _Base, Override) -> Override. |
|
|
|
|
|
|
|
%% |
|
|
|
%% If a filename is provided, construct a dict of terms |
|
|
|
%% |
|
|
|
load_vars_file(undefined) -> |
|
|
|
load_vars_file([undefined]) -> |
|
|
|
dict:new(); |
|
|
|
load_vars_file([]) -> |
|
|
|
dict:new(); |
|
|
|
load_vars_file(File) -> |
|
|
|
load_vars_file(Files) -> |
|
|
|
load_vars_file(Files, dict:new()). |
|
|
|
|
|
|
|
load_vars_file([], Dict) -> |
|
|
|
Dict; |
|
|
|
load_vars_file([File | Files], BaseVars) -> |
|
|
|
case rebar_config:consult_file(File) of |
|
|
|
{ok, Terms} -> |
|
|
|
dict:from_list(Terms); |
|
|
|
OverrideVars = dict:from_list(Terms), |
|
|
|
M = fun merge_overlay_var/3, |
|
|
|
load_vars_file(Files, dict:merge(M, BaseVars, OverrideVars)); |
|
|
|
{error, Reason} -> |
|
|
|
?ABORT("Unable to load overlay_vars from ~p: ~p\n", [File, Reason]) |
|
|
|
end. |
|
|
|