1
0
Fork 0
mirror of https://github.com/Sonarr/Sonarr synced 2024-12-26 09:47:39 +00:00

Update errors shouldn't re-run updater 30 seconds later so we'll catch the error

This commit is contained in:
Mark McDowall 2013-08-03 14:15:31 -07:00
parent 7efe4419fb
commit 6296293286

View file

@ -1,4 +1,5 @@
using System.Diagnostics; using System;
using System.Diagnostics;
using System.IO; using System.IO;
using NLog; using NLog;
using NzbDrone.Common; using NzbDrone.Common;
@ -48,42 +49,48 @@ namespace NzbDrone.Core.Update
private void InstallUpdate(UpdatePackage updatePackage) private void InstallUpdate(UpdatePackage updatePackage)
{ {
var updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder(); try
var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName);
if (_diskProvider.FolderExists(updateSandboxFolder))
{ {
_logger.Info("Deleting old update files"); var updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder();
_diskProvider.DeleteFolder(updateSandboxFolder, true);
}
_logger.Info("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination); var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName);
_httpProvider.DownloadFile(updatePackage.Url, packageDestination);
_logger.Info("Download completed for update package from [{0}]", updatePackage.FileName);
_logger.Info("Extracting Update package"); if (_diskProvider.FolderExists(updateSandboxFolder))
_archiveService.Extract(packageDestination, updateSandboxFolder); {
_logger.Info("Update package extracted successfully"); _logger.Info("Deleting old update files");
_diskProvider.DeleteFolder(updateSandboxFolder, true);
}
_logger.Info("Preparing client"); _logger.Info("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination);
_diskProvider.MoveFolder(_appFolderInfo.GetUpdateClientFolder(), _httpProvider.DownloadFile(updatePackage.Url, packageDestination);
updateSandboxFolder); _logger.Info("Download completed for update package from [{0}]", updatePackage.FileName);
_logger.Info("Extracting Update package");
_archiveService.Extract(packageDestination, updateSandboxFolder);
_logger.Info("Update package extracted successfully");
_logger.Info("Preparing client");
_diskProvider.MoveFolder(_appFolderInfo.GetUpdateClientFolder(),
updateSandboxFolder);
_logger.Info("Starting update client"); _logger.Info("Starting update client");
var startInfo = new ProcessStartInfo var startInfo = new ProcessStartInfo
{ {
FileName = _appFolderInfo.GetUpdateClientExePath(), FileName = _appFolderInfo.GetUpdateClientExePath(),
Arguments = _processProvider.GetCurrentProcess().Id.ToString() Arguments = _processProvider.GetCurrentProcess().Id.ToString()
}; };
var process = _processProvider.Start(startInfo); var process = _processProvider.Start(startInfo);
_processProvider.WaitForExit(process); _processProvider.WaitForExit(process);
_logger.Error("Update process failed"); _logger.Error("Update process failed");
}
catch (Exception ex)
{
_logger.ErrorException("Update process failed", ex);
}
} }
} }
} }