diff options
author | Michael Truog <[email protected]> | 2018-12-19 18:31:52 -0800 |
---|---|---|
committer | Michael Truog <[email protected]> | 2019-01-19 13:50:01 -0800 |
commit | 8029c3653d3f569e146811af85a643559415c76f (patch) | |
tree | 942405f03014630f776578207ab14ea6b696ae0b /lib/reltool/src/reltool_target.erl | |
parent | a11ddd5862fa06a3242e548fbd232a4c294ca7a8 (diff) | |
download | otp-8029c3653d3f569e146811af85a643559415c76f.tar.gz otp-8029c3653d3f569e146811af85a643559415c76f.tar.bz2 otp-8029c3653d3f569e146811af85a643559415c76f.zip |
reltool: Add load_dot_erlang rel option
This adds a rel tuple to the reltool release specific configuration
format as {rel, Name, Vsn, RelApps, Opts} to support the use of
{rel, Name, Vsn, RelApps, [{load_dot_erlang, false}]} for preventing
the insertion of {apply,{c,erlangrc,[]}} into the release script file
and the release boot file.
This change makes it possible to prevent releases generated with
reltool from attempting to load a ${HOME}/.erlang file which is
desirable for production deployment of Erlang, to have greater control
of what BEAM evaluates. The ${HOME}/.erlang file lacks visibility and
its location on the filesystem separate from where the release lives
means it can be misused in a way that lacks visibility.
Diffstat (limited to 'lib/reltool/src/reltool_target.erl')
-rw-r--r-- | lib/reltool/src/reltool_target.erl | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/reltool/src/reltool_target.erl b/lib/reltool/src/reltool_target.erl index 64834ecc1d..dfa62479a0 100644 --- a/lib/reltool/src/reltool_target.erl +++ b/lib/reltool/src/reltool_target.erl @@ -108,12 +108,8 @@ do_gen_config(#sys{root_dir = RootDir, emit(incl_cond, A#app.incl_cond, undefined, InclDefs)} || A <- Apps, A#app.is_escript], DefaultRels = reltool_utils:default_rels(), - RelsItems = - [{rel, R#rel.name, R#rel.vsn, do_gen_config(R, InclDefs)} || - R <- Rels], - DefaultRelsItems = - [{rel, R#rel.name, R#rel.vsn, do_gen_config(R, InclDefs)} || - R <- DefaultRels], + RelsItems = [do_gen_config(R, InclDefs) || R <- Rels], + DefaultRelsItems = [do_gen_config(R, InclDefs) || R <- DefaultRels], RelsItems2 = case InclDefs of true -> RelsItems; @@ -201,11 +197,20 @@ do_gen_config(#mod{name = Name, _ -> [] end; -do_gen_config(#rel{name = _Name, - vsn = _Vsn, - rel_apps = RelApps}, - InclDefs) -> - [do_gen_config(RA, InclDefs) || RA <- RelApps]; +do_gen_config(#rel{name = Name, + vsn = Vsn, + rel_apps = RelApps, + load_dot_erlang = LoadDotErlang}, + InclDefs) -> + RelAppsConfig = [do_gen_config(RA, InclDefs) || RA <- RelApps], + if + LoadDotErlang =:= false -> + {rel, Name, Vsn, RelAppsConfig, [{load_dot_erlang, false}]}; + InclDefs =:= true -> + {rel, Name, Vsn, RelAppsConfig, [{load_dot_erlang, true}]}; + LoadDotErlang =:= true -> + {rel, Name, Vsn, RelAppsConfig} + end; do_gen_config(#rel_app{name = Name, app_type = Type, incl_apps = InclApps}, |