aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sasl/src/systools_make.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2011-11-28 10:47:54 +0100
committerSiri Hansen <[email protected]>2011-11-28 10:47:54 +0100
commit09c280951476aa6c30fd3aa54d99ddc6ced64ccf (patch)
tree75cda1f0b0fa5624657abeb320b56dbfcdc02bc1 /lib/sasl/src/systools_make.erl
parent2b36dd726551cf822041b065df5d753ed0dba8b1 (diff)
downloadotp-09c280951476aa6c30fd3aa54d99ddc6ced64ccf.tar.gz
otp-09c280951476aa6c30fd3aa54d99ddc6ced64ccf.tar.bz2
otp-09c280951476aa6c30fd3aa54d99ddc6ced64ccf.zip
Add copy of rel file in releases/<vsn> in release tar file
systool:make_tar stores the rel file in the releases directory. When unpacking with release_handler:unpack_release, the file is automatically moved to releases/<vsn>/. If, however, the tar file is unpacked manually, the rel file might not be moved, and the next release unpacked might overwrite the rel file. To overcome this, systools:make_tar now stores a copy of the rel file in releases/<vsn>/ directly and it is not longer necessary to move the file after unpacking. The reason for keeping the file in the releases directory also is that is needs to be extracted separately before the release version <vsn> is known.
Diffstat (limited to 'lib/sasl/src/systools_make.erl')
-rw-r--r--lib/sasl/src/systools_make.erl18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/sasl/src/systools_make.erl b/lib/sasl/src/systools_make.erl
index 1c14027805..8fd90c50f9 100644
--- a/lib/sasl/src/systools_make.erl
+++ b/lib/sasl/src/systools_make.erl
@@ -1638,8 +1638,19 @@ add_system_files(Tar, RelName, Release, Path1) ->
SVsn = Release#release.vsn,
RelName0 = filename:basename(RelName),
+ RelVsnDir = filename:join("releases", SVsn),
+
+ %% OTP-9746: store rel file in releases/<vsn>
+ %% Adding rel file to
+ %% 1) releases directory - so it can be easily extracted
+ %% separately (see release_handler:unpack_release)
+ %% 2) releases/<vsn> - so the file must not be explicitly moved
+ %% after unpack.
add_to_tar(Tar, RelName ++ ".rel",
filename:join("releases", RelName0 ++ ".rel")),
+ add_to_tar(Tar, RelName ++ ".rel",
+ filename:join(RelVsnDir, RelName0 ++ ".rel")),
+
%% OTP-6226 Look for the system files not only in cwd
%% --
@@ -1655,26 +1666,25 @@ add_system_files(Tar, RelName, Release, Path1) ->
[RelDir, "."|Path1]
end,
- ToDir = filename:join("releases", SVsn),
case lookup_file(RelName0 ++ ".boot", Path) of
false ->
throw({error, {tar_error,{add, RelName0++".boot",enoent}}});
Boot ->
- add_to_tar(Tar, Boot, filename:join(ToDir, "start.boot"))
+ add_to_tar(Tar, Boot, filename:join(RelVsnDir, "start.boot"))
end,
case lookup_file("relup", Path) of
false ->
ignore;
Relup ->
- add_to_tar(Tar, Relup, filename:join(ToDir, "relup"))
+ add_to_tar(Tar, Relup, filename:join(RelVsnDir, "relup"))
end,
case lookup_file("sys.config", Path) of
false ->
ignore;
Sys ->
- add_to_tar(Tar, Sys, filename:join(ToDir, "sys.config"))
+ add_to_tar(Tar, Sys, filename:join(RelVsnDir, "sys.config"))
end,
ok.