basho / rebar
Erlang Build Tools -- Please file bug and feature requests at http://issues.basho.com.
| commit 176: | 1e12069f4cd6 |
| parent 175: | bf0185304d32 |
| branch: | default |
Support downloading deps via SVN.
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. |
