From d4c2332aabb4337b49bb3ef03793408c58afd5d4 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Wed, 25 Feb 2015 09:49:45 -0600 Subject: make base_dir for a run include the profiles in path, link to shared deps --- src/rebar_prv_install_deps.erl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/rebar_prv_install_deps.erl') diff --git a/src/rebar_prv_install_deps.erl b/src/rebar_prv_install_deps.erl index ab4cca1..952043e 100644 --- a/src/rebar_prv_install_deps.erl +++ b/src/rebar_prv_install_deps.erl @@ -374,7 +374,15 @@ maybe_fetch(AppInfo, Upgrade, Seen, State) -> false -> case rebar_app_discover:find_app(AppDir, all) of false -> - fetch_app(AppInfo, AppDir, State); + case in_default(AppInfo, State) of + false -> + fetch_app(AppInfo, AppDir, State); + {true, FoundApp} -> + ?INFO("Linking ~s to ~s", [rebar_app_info:dir(FoundApp), AppDir]), + filelib:ensure_dir(AppDir), + ok = file:make_symlink(rebar_app_info:dir(FoundApp), AppDir), + true + end; {true, _} -> case sets:is_element(rebar_app_info:name(AppInfo), Seen) of true -> @@ -392,6 +400,10 @@ in_checkouts(AppInfo) -> error -> false end. +in_default(AppInfo, State) -> + Name = ec_cnv:to_list(rebar_app_info:name(AppInfo)), + DefaultAppDir = filename:join([rebar_state:get(State, base_dir), "default", "lib", Name]), + rebar_app_discover:find_app(DefaultAppDir, all). -spec parse_deps(binary(), list(), list(), list(), integer()) -> {[rebar_app_info:t()], [pkg_dep()]}. parse_deps(DepsDir, Deps, State, Locks, Level) -> -- cgit v1.1 From 9fc885073b4772f646d39fc5ba257c34f0b05742 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 28 Feb 2015 15:20:24 -0600 Subject: use same symlink or copy function for deps links --- src/rebar_prv_install_deps.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/rebar_prv_install_deps.erl') diff --git a/src/rebar_prv_install_deps.erl b/src/rebar_prv_install_deps.erl index 952043e..f702936 100644 --- a/src/rebar_prv_install_deps.erl +++ b/src/rebar_prv_install_deps.erl @@ -380,7 +380,7 @@ maybe_fetch(AppInfo, Upgrade, Seen, State) -> {true, FoundApp} -> ?INFO("Linking ~s to ~s", [rebar_app_info:dir(FoundApp), AppDir]), filelib:ensure_dir(AppDir), - ok = file:make_symlink(rebar_app_info:dir(FoundApp), AppDir), + rebar_file_utils:symlink_or_copy(rebar_app_info:dir(FoundApp), AppDir), true end; {true, _} -> -- cgit v1.1