aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric <[email protected]>2013-01-25 14:10:52 -0800
committerEric <[email protected]>2013-01-25 14:13:16 -0800
commit4025eca47e6f80316e7f4c63efc93e7195f419e4 (patch)
tree83043d60e0569dee2aff2fe76d9b8d91684f23ee
parente29f7fa585670f2bb1aad6060bfa2fe0aeba1cd8 (diff)
downloadrelx-4025eca47e6f80316e7f4c63efc93e7195f419e4.tar.gz
relx-4025eca47e6f80316e7f4c63efc93e7195f419e4.tar.bz2
relx-4025eca47e6f80316e7f4c63efc93e7195f419e4.zip
support the discover task searching the output dir
This has the potential to save a lot of time and make future release upgrading much simpler for the user.
-rw-r--r--src/rcl_prv_assembler.erl10
-rw-r--r--src/rcl_prv_discover.erl8
2 files changed, 13 insertions, 5 deletions
diff --git a/src/rcl_prv_assembler.erl b/src/rcl_prv_assembler.erl
index 5488617..63bd167 100644
--- a/src/rcl_prv_assembler.erl
+++ b/src/rcl_prv_assembler.erl
@@ -127,6 +127,16 @@ copy_app(LibDir, App) ->
AppVsn = rcl_app_info:vsn_as_string(App),
AppDir = rcl_app_info:dir(App),
TargetDir = filename:join([LibDir, AppName ++ "-" ++ AppVsn]),
+ if
+ AppDir == TargetDir ->
+ %% No need to do anything here, discover found something already in
+ %% a release dir
+ ok;
+ true ->
+ copy_app(App, AppDir, TargetDir)
+ end.
+
+copy_app(App, AppDir, TargetDir) ->
remove_symlink_or_directory(TargetDir),
case rcl_app_info:link(App) of
true ->
diff --git a/src/rcl_prv_discover.erl b/src/rcl_prv_discover.erl
index 595902a..862bd6e 100644
--- a/src/rcl_prv_discover.erl
+++ b/src/rcl_prv_discover.erl
@@ -42,14 +42,13 @@ init(State) ->
%% looking for OTP Applications
-spec do(rcl_state:t()) -> {ok, rcl_state:t()} | relcool:error().
do(State) ->
- OutputDir = rcl_state:output_dir(State),
LibDirs = get_lib_dirs(State),
rcl_log:info(rcl_state:log(State),
fun() ->
["Resolving OTP Applications from directories:\n",
[[rcl_util:indent(1), LibDir, "\n"] || LibDir <- LibDirs]]
end),
- resolve_app_metadata(State, LibDirs, OutputDir).
+ resolve_app_metadata(State, LibDirs).
-spec format_error([ErrorDetail::term()]) -> iolist().
format_error(ErrorDetails)
@@ -59,10 +58,9 @@ format_error(ErrorDetails)
%%%===================================================================
%%% Internal Functions
%%%===================================================================
-resolve_app_metadata(State, LibDirs, OutputDir) ->
+resolve_app_metadata(State, LibDirs) ->
AppMeta0 = lists:flatten(ec_plists:map(fun(LibDir) ->
- discover_dir([OutputDir],
- LibDir)
+ discover_dir([], LibDir)
end, LibDirs)),
AppMeta1 = setup_overrides(State, AppMeta0),