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

pull/4/head
Mark McDowall 11 years ago
parent 7efe4419fb
commit 6296293286

@ -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 updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder();
var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName); var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName);
if (_diskProvider.FolderExists(updateSandboxFolder)) if (_diskProvider.FolderExists(updateSandboxFolder))
{ {
_logger.Info("Deleting old update files"); _logger.Info("Deleting old update files");
_diskProvider.DeleteFolder(updateSandboxFolder, true); _diskProvider.DeleteFolder(updateSandboxFolder, true);
} }
_logger.Info("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination); _logger.Info("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination);
_httpProvider.DownloadFile(updatePackage.Url, packageDestination); _httpProvider.DownloadFile(updatePackage.Url, packageDestination);
_logger.Info("Download completed for update package from [{0}]", updatePackage.FileName); _logger.Info("Download completed for update package from [{0}]", updatePackage.FileName);
_logger.Info("Extracting Update package"); _logger.Info("Extracting Update package");
_archiveService.Extract(packageDestination, updateSandboxFolder); _archiveService.Extract(packageDestination, updateSandboxFolder);
_logger.Info("Update package extracted successfully"); _logger.Info("Update package extracted successfully");
_logger.Info("Preparing client"); _logger.Info("Preparing client");
_diskProvider.MoveFolder(_appFolderInfo.GetUpdateClientFolder(), _diskProvider.MoveFolder(_appFolderInfo.GetUpdateClientFolder(),
updateSandboxFolder); 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);
}
} }
} }
} }
Loading…
Cancel
Save