aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlx_app_discovery.erl
diff options
context:
space:
mode:
authorJordan Wilberding <[email protected]>2015-01-31 16:24:06 -0800
committerJordan Wilberding <[email protected]>2015-01-31 16:24:06 -0800
commit5a0d655eb52b45a8d382d6b75b1061e3025614ed (patch)
tree6b5e7e30af04d482490f564024e8027cec99b88f /src/rlx_app_discovery.erl
parent3a6b64302bd05441b942da56f5f5deed9b0c58b0 (diff)
parent292eea4c105adb03e0745468db6bb4948e6df98d (diff)
downloadrelx-5a0d655eb52b45a8d382d6b75b1061e3025614ed.tar.gz
relx-5a0d655eb52b45a8d382d6b75b1061e3025614ed.tar.bz2
relx-5a0d655eb52b45a8d382d6b75b1061e3025614ed.zip
Merge pull request #307 from tsloughter/master
Mainly exclude_apps
Diffstat (limited to 'src/rlx_app_discovery.erl')
-rw-r--r--src/rlx_app_discovery.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rlx_app_discovery.erl b/src/rlx_app_discovery.erl
index 6ac8d11..3d58185 100644
--- a/src/rlx_app_discovery.erl
+++ b/src/rlx_app_discovery.erl
@@ -118,8 +118,10 @@ resolve_app_metadata(State, LibDirs) ->
end] of
[] ->
SkipApps = rlx_state:skip_apps(State),
- AppMeta1 = [App || {ok, App} <- setup_overrides(State, AppMeta0),
- not lists:keymember(rlx_app_info:name(App), 1, SkipApps)],
+ ExcludeApps = rlx_state:exclude_apps(State),
+ AppMeta1 = [rm_exclude_apps(App, ExcludeApps) ||
+ {ok, App} <- setup_overrides(State, AppMeta0),
+ not lists:keymember(rlx_app_info:name(App), 1, SkipApps++ExcludeApps)],
ec_cmd_log:debug(rlx_state:log(State),
fun() ->
["Resolved the following OTP Applications from the system: \n",
@@ -129,6 +131,11 @@ resolve_app_metadata(State, LibDirs) ->
Errors ->
?RLX_ERROR(Errors)
end.
+%% Apps listed in {exclude_apps, [...]} must be removed from applications lists
+rm_exclude_apps(App, ExcludeApps) ->
+ ActiveApps = lists:subtract(rlx_app_info:active_deps(App), ExcludeApps),
+ LibraryApps = lists:subtract(rlx_app_info:library_deps(App), ExcludeApps),
+ rlx_app_info:library_deps(rlx_app_info:active_deps(App, ActiveApps), LibraryApps).
app_name({warning, _}) ->
undefined;