mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
Merge pull request #774 from Sonarr/preserve-startup-args
Preserve startup arguments during restart
This commit is contained in:
commit
68e12f1c5e
@ -1,5 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices.ComTypes;
|
||||
|
||||
namespace NzbDrone.Common.EnvironmentInfo
|
||||
{
|
||||
|
@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Common.Disk;
|
||||
|
@ -14,12 +14,14 @@ public class SpinService : IWaitForExit
|
||||
{
|
||||
private readonly IRuntimeInfo _runtimeInfo;
|
||||
private readonly IProcessProvider _processProvider;
|
||||
private readonly IStartupContext _startupContext;
|
||||
private readonly Logger _logger;
|
||||
|
||||
public SpinService(IRuntimeInfo runtimeInfo, IProcessProvider processProvider, Logger logger)
|
||||
public SpinService(IRuntimeInfo runtimeInfo, IProcessProvider processProvider, IStartupContext startupContext, Logger logger)
|
||||
{
|
||||
_runtimeInfo = runtimeInfo;
|
||||
_processProvider = processProvider;
|
||||
_startupContext = startupContext;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
@ -30,13 +32,29 @@ public void Spin()
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
_logger.Debug("wait loop was terminated.");
|
||||
_logger.Debug("Wait loop was terminated.");
|
||||
|
||||
if (_runtimeInfo.RestartPending)
|
||||
{
|
||||
_logger.Info("attemptig restart.");
|
||||
_processProvider.SpawnNewProcess(_runtimeInfo.ExecutingApplication, "--restart --nobrowser");
|
||||
}
|
||||
var restartArgs = GetRestartArgs();
|
||||
|
||||
_logger.Info("Attempting restart with arguments: {0}", restartArgs);
|
||||
_processProvider.SpawnNewProcess(_runtimeInfo.ExecutingApplication, restartArgs);
|
||||
}
|
||||
}
|
||||
|
||||
private string GetRestartArgs()
|
||||
{
|
||||
var args = _startupContext.PreservedArguments;
|
||||
|
||||
args += " /restart";
|
||||
|
||||
if (!args.Contains("/nobrowser"))
|
||||
{
|
||||
args += " /nobrowser";
|
||||
}
|
||||
|
||||
return args;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user