summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Jones <rj@metabrew.com>2015-07-22 16:02:29 +0100
committerRichard Jones <rj@metabrew.com>2015-07-22 16:10:27 +0100
commit9263b95f82d3451b7d80c63cf25f8c38d04e8316 (patch)
treeca25da5d31341c6eeeea9c6435d190b3be72c565 /src
parentb393c8bc9b18de445745844b36af36dbd753f725 (diff)
Tidy up "Linking.." messages during compile
Linking message will only be printed the first time the link or copy actually happens. Note: rebar_file_utils:symlink_or_copy will now return 'exists' instead of ok, if it did nothing because the link exists. Nothing was checking the return value yet, so seemed reasonable.
Diffstat (limited to 'src')
-rw-r--r--src/rebar_file_utils.erl2
-rw-r--r--src/rebar_prv_install_deps.erl22
2 files changed, 18 insertions, 6 deletions
diff --git a/src/rebar_file_utils.erl b/src/rebar_file_utils.erl
index da58c00..07c63f1 100644
--- a/src/rebar_file_utils.erl
+++ b/src/rebar_file_utils.erl
@@ -73,7 +73,7 @@ symlink_or_copy(Source, Target) ->
ok ->
ok;
{error, eexist} ->
- ok;
+ exists;
{error, _} ->
case os:type() of
{win32, _} ->
diff --git a/src/rebar_prv_install_deps.erl b/src/rebar_prv_install_deps.erl
index 2a6048b..8bb394a 100644
--- a/src/rebar_prv_install_deps.erl
+++ b/src/rebar_prv_install_deps.erl
@@ -449,17 +449,29 @@ maybe_symlink_default(State, Profile, AppDir, AppInfo) ->
true ->
SymDir = filename:join([rebar_dir:deps_dir(State),
rebar_app_info:name(AppInfo)]),
- symlink_dep(AppDir, SymDir),
+ symlink_dep(State, AppDir, SymDir),
true;
false ->
false
end.
-
-symlink_dep(From, To) ->
- ?INFO("Linking ~s to ~s", [From, To]),
+symlink_dep(State, From, To) ->
filelib:ensure_dir(To),
- rebar_file_utils:symlink_or_copy(From, To).
+ case rebar_file_utils:symlink_or_copy(From, To) of
+ ok ->
+ RelativeFrom = make_relative_to_root(State, From),
+ RelativeTo = make_relative_to_root(State, To),
+ ?INFO("Linking ~s to ~s", [RelativeFrom, RelativeTo]),
+ ok;
+ exists ->
+ ok
+ end.
+
+make_relative_to_root(State, Path) when is_binary(Path) ->
+ make_relative_to_root(State, binary_to_list(Path));
+make_relative_to_root(State, Path) when is_list(Path) ->
+ Root = rebar_dir:root_dir(State),
+ rebar_dir:make_relative_path(Path, Root).
-spec parse_deps(binary(), list(), rebar_state:t(), list(), integer()) -> {[rebar_app_info:t()], [pkg_dep()]}.
parse_deps(DepsDir, Deps, State, Locks, Level) ->