aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reltool/src/reltool_sys_win.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2012-02-23 11:26:27 +0100
committerSiri Hansen <[email protected]>2012-03-19 09:48:54 +0100
commitc714eff72c1bd15f8831cffe7256f3dfd8faf806 (patch)
tree2218d693c81e33b44c986b6464ed58fab61294fa /lib/reltool/src/reltool_sys_win.erl
parenta5240467ac0b5428063360fc4a3d67ab9ffa1413 (diff)
downloadotp-c714eff72c1bd15f8831cffe7256f3dfd8faf806.tar.gz
otp-c714eff72c1bd15f8831cffe7256f3dfd8faf806.tar.bz2
otp-c714eff72c1bd15f8831cffe7256f3dfd8faf806.zip
[reltool] Fix rollback and undo
OTP-9794 Backup old configuration before starting re-configuration so rollback is possible if configuration fails. Store last configuration including derivates so undo does no longer need to refresh and analyse everything from disk.
Diffstat (limited to 'lib/reltool/src/reltool_sys_win.erl')
-rw-r--r--lib/reltool/src/reltool_sys_win.erl23
1 files changed, 3 insertions, 20 deletions
diff --git a/lib/reltool/src/reltool_sys_win.erl b/lib/reltool/src/reltool_sys_win.erl
index c49641d6a3..1638acb145 100644
--- a/lib/reltool/src/reltool_sys_win.erl
+++ b/lib/reltool/src/reltool_sys_win.erl
@@ -1290,15 +1290,7 @@ reset_config(#state{status_bar = Bar} = S) ->
undo_config(#state{status_bar = Bar} = S) ->
wxStatusBar:setStatusText(Bar, "Processing libraries..."),
- case reltool_server:undo_config(S#state.server_pid) of
- {ok, []} ->
- ok;
- {ok, Warnings} ->
- Msg = lists:flatten([[W, $\n] || W <- Warnings]),
- display_message(Msg, ?wxICON_WARNING);
- {error, Reason} ->
- display_message(Reason, ?wxICON_ERROR)
- end,
+ ok = reltool_server:undo_config(S#state.server_pid),
refresh(S).
load_config(#state{status_bar = Bar, config_file = OldFile} = S) ->
@@ -1452,17 +1444,8 @@ undo_dialog(S, Warnings) ->
?wxID_OK ->
true;
?wxID_CANCEL ->
- case reltool_server:undo_config(S#state.server_pid) of
- {ok, _} ->
- false;
- {error, Reason} ->
- Msg = "FATAL - undo failed:\n\n" ++
- Reason ++
- "\n\nTerminating...",
- display_message(Msg, ?wxICON_ERROR),
- io:format("~p(~p): <ERROR> ~s\n", [?MODULE, ?LINE, Reason]),
- exit(Reason)
- end
+ ok = reltool_server:undo_config(S#state.server_pid),
+ false
end.
display_message(Message, Icon) ->