summaryrefslogtreecommitdiff
path: root/rebar.config.script
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2016-07-20 10:11:08 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2016-07-20 10:11:08 +0200
commit7748dd4e5d249016cdb4edf326c6d73f81f4a3a9 (patch)
treed6d14a2fd2b8e98d77f151d70082ec001dba94ba /rebar.config.script
parentFix test for changes in oauth expiry (diff)
Make processing of if_* clauses in rebar.config recursive
Diffstat (limited to 'rebar.config.script')
-rw-r--r--rebar.config.script15
1 files changed, 11 insertions, 4 deletions
diff --git a/rebar.config.script b/rebar.config.script
index 166f1cbe..1e40dea4 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -19,7 +19,7 @@ ModCfg0 = fun(F, Cfg, [Key|Tail], Op, Default) ->
[{Key, F(F, OldVal, Tail, Op, Default)} | PartCfg]
end
end,
-ModCfg = fun(Cfg, Keys, Op, Default) -> ModCfg0(ModCfg0, Cfg, Keys, Op, Default) end.
+ModCfg = fun(Cfg, Keys, Op, Default) -> ModCfg0(ModCfg0, Cfg, Keys, Op, Default) end,
Cfg = case file:consult(filename:join(filename:dirname(SCRIPT), "vars.config")) of
{ok, Terms} ->
@@ -28,6 +28,13 @@ Cfg = case file:consult(filename:join(filename:dirname(SCRIPT), "vars.config"))
[]
end,
+ProcessSingleVar = fun(F, Var, Tail) ->
+ case F(F, [Var], []) of
+ [] -> Tail;
+ [Val] -> [Val | Tail]
+ end
+ end,
+
ProcessVars = fun(_F, [], Acc) ->
lists:reverse(Acc);
(F, [{Type, Ver, Value} | Tail], Acc) when
@@ -40,7 +47,7 @@ ProcessVars = fun(_F, [], Acc) ->
SysVer < Ver
end,
if Include ->
- F(F, Tail, [Value | Acc]);
+ F(F, Tail, ProcessSingleVar(F, Value, Acc));
true ->
F(F, Tail, Acc)
end;
@@ -50,7 +57,7 @@ ProcessVars = fun(_F, [], Acc) ->
Flag = Type == if_var_true,
case proplists:get_bool(Var, Cfg) of
V when V == Flag ->
- F(F, Tail, [Value | Acc]);
+ F(F, Tail, ProcessSingleVar(F, Value, Acc));
_ ->
F(F, Tail, Acc)
end;
@@ -59,7 +66,7 @@ ProcessVars = fun(_F, [], Acc) ->
Type == if_var_no_match ->
case proplists:get_value(Var, Cfg) of
V when V == Match ->
- F(F, Tail, [Value | Acc]);
+ F(F, Tail, ProcessSingleVar(F, Value, Acc));
_ ->
F(F, Tail, Acc)
end;