aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Sloughter <[email protected]>2013-10-15 09:19:25 -0700
committerTristan Sloughter <[email protected]>2013-10-15 09:19:25 -0700
commit9e390a7022b1f5296d4fdb7618d13d843ed26bde (patch)
tree07e22e095be72356d589995e9aa77051f26ffc69
parentcc47d493933b8b67e5dba442dfac6048cc6d0371 (diff)
parentbf34727c720ba722153225ff8b7bcdefc463b487 (diff)
downloadrelx-9e390a7022b1f5296d4fdb7618d13d843ed26bde.tar.gz
relx-9e390a7022b1f5296d4fdb7618d13d843ed26bde.tar.bz2
relx-9e390a7022b1f5296d4fdb7618d13d843ed26bde.zip
Merge pull request #71 from evax/script_update_on_upgrade
Ensure scripts are updated on upgrade for cold starts
-rw-r--r--src/rlx_prv_assembler.erl16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/rlx_prv_assembler.erl b/src/rlx_prv_assembler.erl
index 5896235..9e3a6f7 100644
--- a/src/rlx_prv_assembler.erl
+++ b/src/rlx_prv_assembler.erl
@@ -970,7 +970,7 @@ main([RelName, NodeName, Cookie, VersionArg]) ->
[ReleasePackage], ?TIMEOUT) of
{ok, Vsn} ->
?INFO(\"Unpacked successfully: ~p~n\", [Vsn]),
- install_and_permafy(TargetNode, Vsn);
+ install_and_permafy(TargetNode, RelName, Vsn);
{error, UnpackReason} ->
print_existing_versions(TargetNode),
?INFO(\"Unpack failed: ~p~n\",[UnpackReason]),
@@ -979,13 +979,13 @@ main([RelName, NodeName, Cookie, VersionArg]) ->
old ->
%% no need to unpack, has been installed previously
?INFO(\"Release ~s is marked old, switching to it.~n\",[Version]),
- install_and_permafy(TargetNode, Version);
+ install_and_permafy(TargetNode, RelName, Version);
unpacked ->
?INFO(\"Release ~s is already unpacked, now installing.~n\",[Version]),
- install_and_permafy(TargetNode, Version);
+ install_and_permafy(TargetNode, RelName, Version);
current -> %% installed and in-use, just needs to be permanent
?INFO(\"Release ~s is already installed and current. Making permanent.~n\",[Version]),
- permafy(TargetNode, Version);
+ permafy(TargetNode, RelName, Version);
permanent ->
?INFO(\"Release ~s is already installed, and set permanent.~n\",[Version])
end;
@@ -995,7 +995,7 @@ main(_) ->
parse_version(V) when is_list(V) ->
hd(string:tokens(V,\"/\")).
-install_and_permafy(TargetNode, Vsn) ->
+install_and_permafy(TargetNode, RelName, Vsn) ->
case rpc:call(TargetNode, release_handler, check_install_release, [Vsn], ?TIMEOUT) of
{ok, _OtherVsn, _Desc} ->
ok;
@@ -1006,7 +1006,7 @@ install_and_permafy(TargetNode, Vsn) ->
case rpc:call(TargetNode, release_handler, install_release, [Vsn], ?TIMEOUT) of
{ok, _, _} ->
?INFO(\"Installed Release: ~s~n\", [Vsn]),
- permafy(TargetNode, Vsn),
+ permafy(TargetNode, RelName, Vsn),
ok;
{error, {no_such_release, Vsn}} ->
VerList =
@@ -1017,8 +1017,10 @@ install_and_permafy(TargetNode, Vsn) ->
erlang:halt(2)
end.
-permafy(TargetNode, Vsn) ->
+permafy(TargetNode, RelName, Vsn) ->
ok = rpc:call(TargetNode, release_handler, make_permanent, [Vsn], ?TIMEOUT),
+ file:copy(filename:join([\"bin\", RelName++\"-\"++Vsn]),
+ filename:join([\"bin\", RelName])),
?INFO(\"Made release permanent: ~p~n\", [Vsn]),
ok.