|
|
@ -18,6 +18,7 @@ init(Type, _State) -> |
|
|
|
{ok, Resource}. |
|
|
|
|
|
|
|
lock(AppInfo, _) -> |
|
|
|
check_type_support(), |
|
|
|
lock_(rebar_app_info:dir(AppInfo), rebar_app_info:source(AppInfo)). |
|
|
|
|
|
|
|
lock_(AppDir, {hg, Url, _}) -> |
|
|
@ -61,6 +62,7 @@ needs_update_(Dir, {hg, Url, Ref}) -> |
|
|
|
not ((LocalRef =:= TargetRef) andalso compare_url(Dir, Url)). |
|
|
|
|
|
|
|
download(TmpDir, AppInfo, State, _) -> |
|
|
|
check_type_support(), |
|
|
|
case download_(TmpDir, rebar_app_info:source(AppInfo), State) of |
|
|
|
{ok, _} -> |
|
|
|
ok; |
|
|
@ -110,6 +112,7 @@ download_(Dir, {hg, Url, Rev}, _State) -> |
|
|
|
[{cd, filename:dirname(Dir)}]). |
|
|
|
|
|
|
|
make_vsn(AppInfo, _) -> |
|
|
|
check_type_support(), |
|
|
|
make_vsn_(rebar_app_info:dir(AppInfo)). |
|
|
|
|
|
|
|
make_vsn_(Dir) -> |
|
|
@ -183,3 +186,19 @@ parse_hg_url("http://" ++ HostPath) -> |
|
|
|
parse_hg_url("https://" ++ HostPath) -> |
|
|
|
[Host | Path] = rebar_string:lexemes(HostPath, "/"), |
|
|
|
{Host, filename:rootname(filename:join(Path), ".hg")}. |
|
|
|
|
|
|
|
check_type_support() -> |
|
|
|
case get({is_supported, ?MODULE}) of |
|
|
|
true -> |
|
|
|
ok; |
|
|
|
false -> |
|
|
|
case rebar_utils:sh("hg --version", [{return_on_error, true}, |
|
|
|
{use_stdout, false}]) of |
|
|
|
{error, _} -> |
|
|
|
?ABORT("hg not installed", []); |
|
|
|
_ -> |
|
|
|
put({is_supported, ?MODULE}, true), |
|
|
|
ok |
|
|
|
end |
|
|
|
end. |
|
|
|
|