diff options
Diffstat (limited to 'src/rebar_utils.erl')
-rw-r--r-- | src/rebar_utils.erl | 17 |
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) -> |