diff options
Diffstat (limited to 'src/rebar_port_compiler.erl')
-rw-r--r-- | src/rebar_port_compiler.erl | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl index c2430e7..74be18c 100644 --- a/src/rebar_port_compiler.erl +++ b/src/rebar_port_compiler.erl @@ -247,8 +247,9 @@ apply_defaults(Vars, Defaults) -> dict:merge(fun(Key, VarValue, DefaultValue) -> case is_expandable(DefaultValue) of true -> - expand_env_variable(DefaultValue, - Key, VarValue); + rebar_utils:expand_env_variable(DefaultValue, + Key, + VarValue); false -> VarValue end end, @@ -267,10 +268,10 @@ merge_each_var([{Key, Value} | Rest], Vars) -> error -> %% Nothing yet defined for this key/value. %% Expand any self-references as blank. - expand_env_variable(Value, Key, ""); + rebar_utils:expand_env_variable(Value, Key, ""); {ok, Value0} -> %% Use previous definition in expansion - expand_env_variable(Value, Key, Value0) + rebar_utils:expand_env_variable(Value, Key, Value0) end, merge_each_var(Rest, orddict:store(Key, Evalue, Vars)). @@ -305,7 +306,8 @@ expand_vars(Key, Value, Vars) -> Key -> AValue; _ -> - expand_env_variable(AValue, Key, Value) + rebar_utils:expand_env_variable(AValue, + Key, Value) end, [{AKey, NewValue} | Acc] end, @@ -313,8 +315,8 @@ expand_vars(Key, Value, Vars) -> expand_command(TmplName, Env, InFiles, OutFile) -> Cmd0 = proplists:get_value(TmplName, Env), - Cmd1 = expand_env_variable(Cmd0, "PORT_IN_FILES", InFiles), - Cmd2 = expand_env_variable(Cmd1, "PORT_OUT_FILE", OutFile), + Cmd1 = rebar_utils:expand_env_variable(Cmd0, "PORT_IN_FILES", InFiles), + Cmd2 = rebar_utils:expand_env_variable(Cmd1, "PORT_OUT_FILE", OutFile), re:replace(Cmd2, "\\\$\\w+|\\\${\\w+}", "", [global, {return, list}]). %% @@ -327,18 +329,6 @@ is_expandable(InStr) -> end. %% -%% Given env. variable FOO we want to expand all references to -%% it in InStr. References can have two forms: $FOO and ${FOO} -%% The end of form $FOO is delimited with whitespace or eol -%% -expand_env_variable(InStr, VarName, VarValue) -> - R1 = re:replace(InStr, "\\\$" ++ VarName ++ "\\s", VarValue ++ " ", - [global]), - R2 = re:replace(R1, "\\\$" ++ VarName ++ "\$", VarValue), - re:replace(R2, "\\\${" ++ VarName ++ "}", VarValue, - [global, {return, list}]). - -%% %% Filter a list of env vars such that only those which match the provided %% architecture regex (or do not have a regex) are returned. %% |