From 03a026f38fde8eb2b39447eb25aa219d017989fd Mon Sep 17 00:00:00 2001 From: Adam Schepis Date: Fri, 10 Feb 2012 09:55:36 -0500 Subject: Add support for alternate dependency urls This change adds the ability to use alternate urls for downloading dependencies. To make use of alternate urls run: rebar get-deps alt_urls=true --- src/rebar_deps.erl | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/rebar_deps.erl') diff --git a/src/rebar_deps.erl b/src/rebar_deps.erl index 2085cf2..c6e3ff6 100644 --- a/src/rebar_deps.erl +++ b/src/rebar_deps.erl @@ -223,15 +223,30 @@ find_deps(Mode, [App | Rest], Acc) when is_atom(App) -> find_deps(Mode, [{App, VsnRegex} | Rest], Acc) when is_atom(App) -> find_deps(Mode, [{App, VsnRegex, undefined} | Rest], Acc); find_deps(Mode, [{App, VsnRegex, Source} | Rest], Acc) -> + find_deps(Mode, [{App, VsnRegex, Source, []} | Rest], Acc); +find_deps(Mode, [{App, VsnRegex, Source, Opts} | Rest], Acc) -> Dep = #dep { app = App, vsn_regex = VsnRegex, - source = Source }, + source = get_source(Source, Opts) }, {Availability, FoundDir} = find_dep(Dep), find_deps(Mode, Rest, acc_deps(Mode, Availability, Dep, FoundDir, Acc)); find_deps(_Mode, [Other | _Rest], _Acc) -> ?ABORT("Invalid dependency specification ~p in ~s\n", [Other, rebar_utils:get_cwd()]). +get_source(undefined, _Opts) -> + undefined; +get_source(Source, Opts) -> + setelement(2, Source, dep_url(element(2, Source), Opts)). + +dep_url(Url, Opts) -> + case rebar_config:get_global(alt_urls, "false") of + "true" -> + proplists:get_value(alt_url, Opts, Url); + "false" -> + Url + end. + find_dep(Dep) -> %% Find a dep based on its source, %% e.g. {git, "https://github.com/mochi/mochiweb.git", "HEAD"} -- cgit v1.1