basho / rebar

Erlang Build Tools -- Please file bug and feature requests at http://issues.basho.com.

Clone this repository (size: 432.4 KB): HTTPS / SSH
$ hg clone http://hg.basho.com/rebar
commit 176: 1e12069f4cd6
parent 175: bf0185304d32
branch: default
Support downloading deps via SVN.
dreid
5 months ago

Changed (Δ411 bytes):

raw changeset »

src/rebar_deps.erl (11 lines added, 4 lines removed)

Up to file-list src/rebar_deps.erl:

@@ -203,15 +203,19 @@ download_source(AppDir, {hg, Url, Rev})
203
203
download_source(AppDir, {git, Url, Rev}) ->
204
204
    ok = filelib:ensure_dir(AppDir),
205
205
    rebar_utils:sh(?FMT("git clone -n ~s", [Url]), [], filename:dirname(AppDir)),
206
    rebar_utils:sh(?FMT("git checkout ~s", [Rev]), [], AppDir).
207
206
    rebar_utils:sh(?FMT("git checkout ~s", [Rev]), [], AppDir);
207
download_source(AppDir, {svn, Url, Rev}) ->
208
    ok = filelib:ensure_dir(AppDir),
209
    rebar_utils:sh(?FMT("svn checkout -r ~s ~s ~s",
210
                        [Rev, Url, filename:basename(AppDir)]), [],
211
                   filename:dirname(AppDir)).
208
212
209
213
210
214
%% ===================================================================
211
215
%% Source helper functions
212
216
%% ===================================================================
213
217
214
source_engine_avail({Name, _, _}) when Name == hg; Name == git ->
218
source_engine_avail({Name, _, _}) when Name == hg; Name == git; Name == svn ->
215
219
    case scm_client_vsn(Name) >= required_scm_client_vsn(Name) of
216
220
        true ->
217
221
            true;
@@ -232,11 +236,14 @@ scm_client_vsn(Path, VsnArg, VsnRegex) -
232
236
    end.
233
237
234
238
required_scm_client_vsn(hg)  -> {1, 4};
235
required_scm_client_vsn(git) -> {1, 6}.
239
required_scm_client_vsn(git) -> {1, 6};
240
required_scm_client_vsn(svn) -> {1, 6}.
236
241
237
242
scm_client_vsn(hg) ->
238
243
    scm_client_vsn(os:find_executable(hg), " --version", "version (\\d+).(\\d+)");
239
244
scm_client_vsn(git) ->
240
245
    scm_client_vsn(os:find_executable(git), " --version", "git version (\\d+).(\\d+)");
246
scm_client_vsn(svn) ->
247
    scm_client_vsn(os:find_executable(svn), " --version", "svn, version (\\d+).(\\d+)");
241
248
scm_client_vsn(_) ->
242
249
    undefined.