2013-09-12 22:42:01 +00:00
|
|
|
|
using System.Collections.Generic;
|
2013-07-09 00:47:09 +00:00
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Common.EnvironmentInfo
|
|
|
|
|
{
|
2013-11-26 06:53:36 +00:00
|
|
|
|
public interface IStartupContext
|
2013-07-09 00:47:09 +00:00
|
|
|
|
{
|
2013-08-13 05:08:37 +00:00
|
|
|
|
HashSet<string> Flags { get; }
|
|
|
|
|
Dictionary<string, string> Args { get; }
|
2013-11-26 05:36:06 +00:00
|
|
|
|
bool InstallService { get; }
|
|
|
|
|
bool UninstallService { get; }
|
2013-08-13 05:08:37 +00:00
|
|
|
|
}
|
2013-07-09 00:47:09 +00:00
|
|
|
|
|
2013-11-26 06:53:36 +00:00
|
|
|
|
public class StartupContext : IStartupContext
|
2013-08-13 05:08:37 +00:00
|
|
|
|
{
|
|
|
|
|
public const string APPDATA = "data";
|
|
|
|
|
public const string NO_BROWSER = "nobrowser";
|
2013-11-26 05:36:06 +00:00
|
|
|
|
internal const string INSTALL_SERVICE = "i";
|
|
|
|
|
internal const string UNINSTALL_SERVICE = "u";
|
2013-07-09 00:47:09 +00:00
|
|
|
|
public const string HELP = "?";
|
2014-01-14 01:35:16 +00:00
|
|
|
|
public const string TERMINATE = "terminateexisting";
|
2013-07-09 00:47:09 +00:00
|
|
|
|
|
2013-11-26 06:53:36 +00:00
|
|
|
|
public StartupContext(params string[] args)
|
2013-07-09 00:47:09 +00:00
|
|
|
|
{
|
|
|
|
|
Flags = new HashSet<string>();
|
2013-08-13 05:08:37 +00:00
|
|
|
|
Args = new Dictionary<string, string>();
|
2013-07-09 00:47:09 +00:00
|
|
|
|
|
|
|
|
|
foreach (var s in args)
|
|
|
|
|
{
|
|
|
|
|
var flag = s.Trim(' ', '/', '-').ToLower();
|
2013-08-13 05:08:37 +00:00
|
|
|
|
|
|
|
|
|
var argParts = flag.Split('=');
|
|
|
|
|
|
|
|
|
|
if (argParts.Length == 2)
|
|
|
|
|
{
|
|
|
|
|
Args.Add(argParts[0].Trim(), argParts[1].Trim(' ', '"'));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Flags.Add(flag);
|
|
|
|
|
}
|
2013-07-09 00:47:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public HashSet<string> Flags { get; private set; }
|
2013-08-13 05:08:37 +00:00
|
|
|
|
public Dictionary<string, string> Args { get; private set; }
|
2013-11-26 05:36:06 +00:00
|
|
|
|
|
|
|
|
|
public bool InstallService
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return Flags.Contains(INSTALL_SERVICE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool UninstallService
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return Flags.Contains(UNINSTALL_SERVICE);
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-07-09 00:47:09 +00:00
|
|
|
|
}
|
|
|
|
|
}
|