Add rollback capability if update extraction fails
This commit is contained in:
parent
d327095b4b
commit
236b79cc8a
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user