From 236b79cc8ade0c862a650f161fba920c66bd4701 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Wed, 10 Apr 2013 16:07:31 -0400 Subject: [PATCH] Add rollback capability if update extraction fails --- MediaBrowser.Installer/MainWindow.xaml.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index 0a30cc6a2..bb2612523 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/MediaBrowser.Installer/MainWindow.xaml.cs @@ -241,7 +241,6 @@ namespace MediaBrowser.Installer } catch (Exception e) { - SystemClose("Error Removing Archive - " + e.GetType().FullName + "\n\n" + e.Message); return; } @@ -399,17 +398,12 @@ namespace MediaBrowser.Installer protected void ExtractPackage(string archive) { // Delete old content of system - var systemDir = Path.Combine(RootPath, "system"); + var systemDir = Path.Combine(RootPath, "System"); + var backupDir = Path.Combine(RootPath, "System.old"); if (Directory.Exists(systemDir)) { - try - { - Directory.Delete(systemDir, true); - } - catch - { - // we tried... - } + if (Directory.Exists(backupDir)) Directory.Delete(backupDir,true); + Directory.Move(systemDir, backupDir); } // And extract @@ -437,6 +431,10 @@ namespace MediaBrowser.Installer } else { + //Rollback + if (Directory.Exists(systemDir)) Directory.Delete(systemDir); + Directory.Move(backupDir, systemDir); + File.Delete(archive); // so we don't try again if its an update throw; } }