mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-30 19:50:15 -07:00
More update code. almost there.
This commit is contained in:
parent
60d598f2c1
commit
883dffca80
8 changed files with 166 additions and 14 deletions
|
@ -1,15 +1,78 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using NLog;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Update.Providers;
|
||||
|
||||
namespace NzbDrone.Update
|
||||
{
|
||||
class Program
|
||||
public class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
private readonly UpdateProvider _updateProvider;
|
||||
private readonly ProcessProvider _processProvider;
|
||||
|
||||
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
public Program(UpdateProvider updateProvider, ProcessProvider processProvider)
|
||||
{
|
||||
|
||||
_updateProvider = updateProvider;
|
||||
_processProvider = processProvider;
|
||||
}
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine("Starting NzbDrone Update Client");
|
||||
|
||||
LogConfiguration.RegisterConsoleLogger(LogLevel.Trace);
|
||||
LogConfiguration.RegisterUdpLogger();
|
||||
LogConfiguration.RegisterExceptioneer();
|
||||
LogConfiguration.Reload();
|
||||
|
||||
logger.Info("Initializing update application");
|
||||
|
||||
var enviromentProvider = new EnviromentProvider();
|
||||
var processProvider = new ProcessProvider();
|
||||
var serviceProvider = new ServiceProvider();
|
||||
var diskProvider = new DiskProvider();
|
||||
|
||||
var updateProvider = new UpdateProvider(diskProvider, serviceProvider, processProvider, enviromentProvider);
|
||||
|
||||
new Program(updateProvider, processProvider).Start(args);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.Fatal("An error has occurred while applying update.", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void Start(string[] args)
|
||||
{
|
||||
VerfityArguments(args);
|
||||
int processId = ParseProcessId(args);
|
||||
|
||||
string appPath = _processProvider.GetProcessById(processId).StartPath;
|
||||
|
||||
logger.Info("Starting update process");
|
||||
_updateProvider.Start(appPath);
|
||||
}
|
||||
|
||||
private int ParseProcessId(string[] args)
|
||||
{
|
||||
int id = 0;
|
||||
if (!Int32.TryParse(args[0], out id) || id <= 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("Invalid process id: " + args[0]);
|
||||
}
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
private void VerfityArguments(string[] args)
|
||||
{
|
||||
if (args == null || args.Length != 2)
|
||||
throw new ArgumentException("Wrong number of parameters were passed in.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue