aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Sloughter <[email protected]>2019-04-01 09:20:02 -0600
committerGitHub <[email protected]>2019-04-01 09:20:02 -0600
commit46afa565c7b319d1a8b23a7583da9d1d5e1e02e1 (patch)
tree8942cafc05aa7f7d8b23752fff93a35c283cc020
parenta0706e46bc9b976afe80a0a8c0bbcc595f6b0b63 (diff)
downloadrelx-46afa565c7b319d1a8b23a7583da9d1d5e1e02e1.tar.gz
relx-46afa565c7b319d1a8b23a7583da9d1d5e1e02e1.tar.bz2
relx-46afa565c7b319d1a8b23a7583da9d1d5e1e02e1.zip
include vm.args.src file in tarball if it exists (#698)
* include vm.args.src in tarball if it exists * only check sys.config.src in tar on otp-21+
-rw-r--r--src/rlx_prv_archive.erl3
-rw-r--r--test/rlx_archive_SUITE.erl20
2 files changed, 21 insertions, 2 deletions
diff --git a/src/rlx_prv_archive.erl b/src/rlx_prv_archive.erl
index e1735d1..8fd03c1 100644
--- a/src/rlx_prv_archive.erl
+++ b/src/rlx_prv_archive.erl
@@ -141,9 +141,10 @@ update_tar(State, TempDir, OutputDir, Name, Vsn, ErtsVersion) ->
config_files(Vsn, OutputDir) ->
VMArgs = {filename:join(["releases", Vsn, "vm.args"]), filename:join([OutputDir, "releases", Vsn, "vm.args"])},
+ VMArgsSrc = {filename:join(["releases", Vsn, "vm.args.src"]), filename:join([OutputDir, "releases", Vsn, "vm.args.src"])},
VMArgsOrig = {filename:join(["releases", Vsn, "vm.args.orig"]), filename:join([OutputDir, "releases", Vsn, "vm.args.orig"])},
SysConfigOrig = {filename:join(["releases", Vsn, "sys.config.orig"]), filename:join([OutputDir, "releases", Vsn, "sys.config.orig"])},
- [{NameInArchive, Filename} || {NameInArchive, Filename} <- [VMArgs, VMArgsOrig, SysConfigOrig], filelib:is_file(Filename)].
+ [{NameInArchive, Filename} || {NameInArchive, Filename} <- [VMArgsSrc, VMArgs, VMArgsOrig, SysConfigOrig], filelib:is_file(Filename)].
overlay_files(_, undefined, _) ->
diff --git a/test/rlx_archive_SUITE.erl b/test/rlx_archive_SUITE.erl
index 5122c11..68a5b07 100644
--- a/test/rlx_archive_SUITE.erl
+++ b/test/rlx_archive_SUITE.erl
@@ -55,11 +55,19 @@ basic_tar(Config) ->
rlx_test_utils:create_app(LibDir1, "non_goal_1", "0.0.1", [stdlib,kernel], [lib_dep_1]),
rlx_test_utils:create_app(LibDir1, "non_goal_2", "0.0.1", [stdlib,kernel], []),
+ SysConfigSrc = filename:join([LibDir1, "config", "sys.config.src"]),
+ rlx_test_utils:write_config(SysConfigSrc, [{this_is_a_test, "yup it is"}]),
+
+ VmArgsSrc = filename:join([LibDir1, "config", "vm.args.src"]),
+ ec_file:write(VmArgsSrc, ""),
+
ConfigFile = filename:join([LibDir1, "relx.config"]),
rlx_test_utils:write_config(ConfigFile,
[{release, {foo, "0.0.1"},
[goal_app_1,
- goal_app_2]}]),
+ goal_app_2]},
+ {sys_config_src, SysConfigSrc},
+ {vm_args_src, VmArgsSrc}]),
OutputDir = filename:join([proplists:get_value(priv_dir, Config),
rlx_test_utils:create_random_name("relx-output")]),
{ok, State} = relx:do([{relname, foo},
@@ -84,6 +92,16 @@ basic_tar(Config) ->
{ok, Files} = erl_tar:table(TarFile, [compressed]),
?assert(lists:any(fun(X) -> re:run(X, "lib/stdlib-.*/ebin/.*") =/= nomatch end, Files)),
?assert(lists:any(fun(X) -> re:run(X, "lib/kernel-.*/ebin/.*") =/= nomatch end, Files)),
+
+ %% only works in otp-21 and above
+ case erlang:system_info(otp_release) of
+ R when R =:= "21" orelse R =:= "22" ->
+ ?assert(lists:member("releases/0.0.1/vm.args.src", Files)),
+ ?assert(lists:member("releases/0.0.1/sys.config.src", Files));
+ _ ->
+ ok
+ end,
+
?assert(filelib:is_regular(TarFile)).
exclude_erts(Config) ->