Переглянути джерело

Ensure we have the correct hg version

pull/3/head
iw 15 роки тому
джерело
коміт
864d4b74d6
1 змінених файлів з 25 додано та 5 видалено
  1. +25
    -5
      src/rebar_deps.erl

+ 25
- 5
src/rebar_deps.erl Переглянути файл

@ -31,6 +31,8 @@
-export([preprocess/2,
distclean/2]).
-define(HG_VERSION, "1.4").
%% ===================================================================
%% Public API
%% ===================================================================
@ -207,13 +209,31 @@ download_source(AppDir, {hg, Url, Rev}) ->
%% ===================================================================
source_engine_avail({hg, _, _}) ->
Res = os:cmd("which hg"),
?DEBUG("which hg = ~p\n", [Res]),
case Res of
[] ->
Path = os:find_executable("hg"),
?DEBUG("which hg = ~p\n", [Path]),
case Path of
false ->
false;
_ ->
true
ensure_required_scm_client(hg, Path)
end;
source_engine_avail(_) ->
false.
%% We expect the initial part of the version string to be of the form:
%% "Mercurial Distributed SCM (version 1.4.1+20091201)". Rebar
%% requires version 1.4 or higher.
ensure_required_scm_client(hg, Path) ->
Info = os:cmd(Path ++ " --version"),
case re:run(Info, "version (\\d*\.\\d*\.\\d*)", [{capture, all_but_first, list}]) of
{match, [Vsn]} ->
case Vsn >= ?HG_VERSION of
true ->
true;
false ->
?ABORT("Rebar requires version ~p or higher of hg (~p)~n",
[?HG_VERSION, Path])
end;
_ ->
false
end.

Завантаження…
Відмінити
Зберегти