aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlx_state.erl
diff options
context:
space:
mode:
authorLuis Rascao <[email protected]>2016-11-20 22:19:08 +0000
committerLuis Rascao <[email protected]>2016-11-21 00:24:37 +0000
commit81369d99a9b6ee5caae6b5e6a5faffb8a65fb588 (patch)
tree8b3e2acce5896f977bd264fb1cf66a9ffe6e6fd6 /src/rlx_state.erl
parentc305c89713abf48570e2db152b367f00ac641893 (diff)
downloadrelx-81369d99a9b6ee5caae6b5e6a5faffb8a65fb588.tar.gz
relx-81369d99a9b6ee5caae6b5e6a5faffb8a65fb588.tar.bz2
relx-81369d99a9b6ee5caae6b5e6a5faffb8a65fb588.zip
Provide a new config directive that allows per-app module exclusion
By introducing a new entry in the config file allow excluding specific modules from a given app, they will not be copied onto the final release and their reference removed from the .app file. The new entry takes on the following form: {exclude_modules, [ {App :: atom(), [Module :: atom()]} ]}
Diffstat (limited to 'src/rlx_state.erl')
-rw-r--r--src/rlx_state.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rlx_state.erl b/src/rlx_state.erl
index 6974d52..75a5cba 100644
--- a/src/rlx_state.erl
+++ b/src/rlx_state.erl
@@ -82,7 +82,9 @@
upfrom/1,
upfrom/2,
format/1,
- format/2]).
+ format/2,
+ exclude_modules/1,
+ exclude_modules/2]).
-export_type([t/0,
@@ -107,6 +109,7 @@
overrides=[] :: [{AppName::atom(), Directory::file:filename()}],
skip_apps=[] :: [AppName::atom()],
exclude_apps=[] :: [AppName::atom()],
+ exclude_modules=[] :: [{App::atom(), [Module::atom()]}],
debug_info=keep :: keep | strip,
configured_releases :: releases(),
realized_releases :: releases(),
@@ -200,6 +203,15 @@ exclude_apps(#state_t{exclude_apps=Apps}) ->
exclude_apps(State, SkipApps) ->
State#state_t{exclude_apps=SkipApps}.
+-spec exclude_modules(t()) -> [{App::atom(), [Module::atom()]}].
+exclude_modules(#state_t{exclude_modules=Modules}) ->
+ Modules.
+
+%% @doc modules to be excluded from the release
+-spec exclude_modules(t(), [{App::atom(), [Module::atom()]}]) -> t().
+exclude_modules(State, SkipModules) ->
+ State#state_t{exclude_modules=SkipModules}.
+
-spec debug_info(t()) -> keep | strip.
debug_info(#state_t{debug_info=DebugInfo}) ->
DebugInfo.