mirror of https://github.com/winsw/winsw
95 lines
2.0 KiB
C#
95 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.ServiceProcess;
|
|
using System.Xml;
|
|
|
|
namespace WinSW.Configuration
|
|
{
|
|
public interface IWinSWConfiguration
|
|
{
|
|
// TODO: Document the parameters && refactor
|
|
string Name { get; }
|
|
|
|
string DisplayName { get; }
|
|
|
|
string Description { get; }
|
|
|
|
string Executable { get; }
|
|
|
|
string ExecutablePath { get; }
|
|
|
|
bool HideWindow { get; }
|
|
|
|
// Installation
|
|
Native.SC_ACTION[] FailureActions { get; }
|
|
|
|
TimeSpan ResetFailureAfter { get; }
|
|
|
|
// Executable management
|
|
string Arguments { get; }
|
|
|
|
string? StartArguments { get; }
|
|
|
|
string? StopExecutable { get; }
|
|
|
|
string? StopArguments { get; }
|
|
|
|
string WorkingDirectory { get; }
|
|
|
|
ProcessPriorityClass Priority { get; }
|
|
|
|
TimeSpan StopTimeout { get; }
|
|
|
|
bool StopParentProcessFirst { get; }
|
|
|
|
// Service management
|
|
ServiceStartMode StartMode { get; }
|
|
|
|
string[] ServiceDependencies { get; }
|
|
|
|
TimeSpan WaitHint { get; }
|
|
|
|
TimeSpan SleepTime { get; }
|
|
|
|
bool Interactive { get; }
|
|
|
|
/// <summary>
|
|
/// Destination for logging.
|
|
/// If undefined, a default one should be used.
|
|
/// </summary>
|
|
string LogDirectory { get; }
|
|
|
|
// TODO: replace by enum
|
|
string LogMode { get; }
|
|
|
|
Log Log { get; }
|
|
|
|
// Environment
|
|
List<Download> Downloads { get; }
|
|
|
|
Dictionary<string, string> EnvironmentVariables { get; }
|
|
|
|
// Misc
|
|
bool BeepOnShutdown { get; }
|
|
|
|
// Extensions
|
|
XmlNode? ExtensionsConfiguration { get; }
|
|
|
|
List<YamlExtensionConfiguration>? YamlExtensionsConfiguration { get; }
|
|
|
|
List<string> ExtensionIds { get; }
|
|
|
|
// Service Account
|
|
ServiceAccount ServiceAccount { get; }
|
|
|
|
string BaseName { get; }
|
|
|
|
string BasePath { get; }
|
|
|
|
bool DelayedAutoStart { get; }
|
|
|
|
string? SecurityDescriptor { get; }
|
|
}
|
|
}
|