summaryrefslogtreecommitdiff
path: root/src/rebar_utils.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar_utils.erl')
-rw-r--r--src/rebar_utils.erl17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl
index 36348e7..be69acc 100644
--- a/src/rebar_utils.erl
+++ b/src/rebar_utils.erl
@@ -42,7 +42,7 @@
prop_check/3,
expand_code_path/0,
expand_env_variable/3,
- vcs_vsn/2,
+ vcs_vsn/3,
deprecated/3, deprecated/4,
get_deprecated_global/3, get_deprecated_global/4,
get_deprecated_list/4, get_deprecated_list/5,
@@ -198,14 +198,17 @@ expand_env_variable(InStr, VarName, RawVarValue) ->
re:replace(InStr, RegEx, [VarValue, "\\2"], ReOpts)
end.
-vcs_vsn(Vcs, Dir) ->
+vcs_vsn(Config, Vcs, Dir) ->
Key = {Vcs, Dir},
- try ets:lookup_element(rebar_vsn_cache, Key, 2)
- catch
- error:badarg ->
+ {ok, Cache} = rebar_config:get_xconf(Config, vsn_cache),
+ case dict:find(Key, Cache) of
+ error ->
VsnString = vcs_vsn_1(Vcs, Dir),
- ets:insert(rebar_vsn_cache, {Key, VsnString}),
- VsnString
+ Cache1 = dict:store(Key, VsnString, Cache),
+ Config1 = rebar_config:set_xconf(Config, vsn_cache, Cache1),
+ {Config1, VsnString};
+ {ok, VsnString} ->
+ {Config, VsnString}
end.
get_deprecated_global(OldOpt, NewOpt, When) ->