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.erl20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl
index 4a74661..2d227b6 100644
--- a/src/rebar_utils.erl
+++ b/src/rebar_utils.erl
@@ -52,6 +52,7 @@
erl_opts/1,
src_dirs/1,
ebin_dir/0,
+ base_dir/1,
processing_base_dir/1, processing_base_dir/2]).
-include("rebar.hrl").
@@ -200,12 +201,12 @@ expand_env_variable(InStr, VarName, RawVarValue) ->
re:replace(InStr, RegEx, [VarValue, "\\2"], ReOpts)
end.
-vcs_vsn(Config, Vcs, Dir) ->
- Key = {Vcs, Dir},
+vcs_vsn(Config, Vsn, Dir) ->
+ Key = {Vsn, Dir},
Cache = rebar_config:get_xconf(Config, vsn_cache),
case dict:find(Key, Cache) of
error ->
- VsnString = vcs_vsn_1(Vcs, Dir),
+ VsnString = vcs_vsn_1(Vsn, Dir),
Cache1 = dict:store(Key, VsnString, Cache),
Config1 = rebar_config:set_xconf(Config, vsn_cache, Cache1),
{Config1, VsnString};
@@ -307,12 +308,15 @@ src_dirs(SrcDirs) ->
ebin_dir() ->
filename:join(get_cwd(), "ebin").
+base_dir(Config) ->
+ rebar_config:get_xconf(Config, base_dir).
+
processing_base_dir(Config) ->
Cwd = rebar_utils:get_cwd(),
processing_base_dir(Config, Cwd).
processing_base_dir(Config, Dir) ->
- Dir =:= rebar_config:get_xconf(Config, base_dir).
+ Dir =:= base_dir(Config).
%% ====================================================================
%% Internal functions
@@ -441,11 +445,12 @@ emulate_escript_foldl(Fun, Acc, File) ->
vcs_vsn_1(Vcs, Dir) ->
case vcs_vsn_cmd(Vcs) of
- {unknown, VsnString} ->
- ?DEBUG("vcs_vsn: Unknown VCS atom in vsn field: ~p\n", [Vcs]),
+ {plain, VsnString} ->
VsnString;
{cmd, CmdString} ->
vcs_vsn_invoke(CmdString, Dir);
+ unknown ->
+ ?ABORT("vcs_vsn: Unknown vsn format: ~p\n", [Vcs]);
Cmd ->
%% If there is a valid VCS directory in the application directory,
%% use that version info
@@ -478,7 +483,8 @@ vcs_vsn_cmd(bzr) -> "bzr revno";
vcs_vsn_cmd(svn) -> "svnversion";
vcs_vsn_cmd(fossil) -> "fossil info";
vcs_vsn_cmd({cmd, _Cmd}=Custom) -> Custom;
-vcs_vsn_cmd(Version) -> {unknown, Version}.
+vcs_vsn_cmd(Version) when is_list(Version) -> {plain, Version};
+vcs_vsn_cmd(_) -> unknown.
vcs_vsn_invoke(Cmd, Dir) ->
{ok, VsnString} = rebar_utils:sh(Cmd, [{cd, Dir}, {use_stdout, false}]),