Update Yaml extension support

pull/638/head
Buddhika Chathuranga 2020-08-07 23:52:12 +05:30 committed by NextTurn
parent dcec99c261
commit 42df5eeff9
No known key found for this signature in database
GPG Key ID: 17A0D50ADDE1A0C4
6 changed files with 35 additions and 22 deletions

View File

@ -654,12 +654,12 @@ namespace WinSW.Configuration
return result; return result;
} }
var extensionConfigListObject = new ObjectQuery(extensions).ToList<object>(); var extensionConfigListObject = new ObjectQuery(extensions).AsList<object>();
foreach (var item in extensionConfigListObject) foreach (var item in extensionConfigListObject)
{ {
var configObject = new ObjectQuery(item); var configObject = new ObjectQuery(item);
var id = configObject.On("id").ToString(); var id = configObject.On("id").AsString();
result.Add(id); result.Add(id);
} }

View File

@ -40,16 +40,16 @@ namespace WinSW.Extensions
return result; return result;
} }
var extensionNodes = new ObjectQuery(extensions).ToList<object>(); var extensionNodes = new ObjectQuery(extensions).AsList<object>();
foreach (var extension in extensionNodes) foreach (var extension in extensionNodes)
{ {
var query = new ObjectQuery(extension); var query = new ObjectQuery(extension);
var id = query.On("id").ToString(); var id = query.On("id").AsString();
var enabled = query.On("enabled").ToBoolean(); var enabled = query.On("enabled").AsBool();
var className = query.On("classname").ToString(); var className = query.On("classname").AsString();
var settings = query.On("settings"); var settings = query.On("settings").AsParent();
var extensionConfig = new WinSWExtensionConfiguration(id, enabled, className, settings); var extensionConfig = new WinSWExtensionConfiguration(id, enabled, className, settings);
result.Add(extensionConfig); result.Add(extensionConfig);

View File

@ -40,7 +40,7 @@ namespace WinSW.Util
return this; return this;
} }
public new string ToString() public string AsString()
{ {
if (this.current == null) if (this.current == null)
{ {
@ -57,7 +57,7 @@ namespace WinSW.Util
return result; return result;
} }
public List<T> ToList<T>() public List<T> AsList<T>()
{ {
if (this.current == null) if (this.current == null)
{ {
@ -80,7 +80,7 @@ namespace WinSW.Util
return result; return result;
} }
public bool ToBoolean() public bool AsBool()
{ {
if (this.current == null) if (this.current == null)
{ {
@ -135,7 +135,7 @@ namespace WinSW.Util
return this; return this;
} }
private object? Query(object dic, string key) private object? Query(object? dic, string key)
{ {
if (dic == null) if (dic == null)
{ {
@ -156,5 +156,10 @@ namespace WinSW.Util
return null; return null;
} }
public ObjectQuery AsParent()
{
return new ObjectQuery(this.current);
}
} }
} }

View File

@ -181,10 +181,17 @@ namespace WinSW.Plugins.RunawayProcessKiller
public override void Configure(IWinSWConfiguration descriptor, ObjectQuery settings) public override void Configure(IWinSWConfiguration descriptor, ObjectQuery settings)
{ {
this.Pidfile = settings.Get("pidfile").ToString(); this.Pidfile = settings.On("pidfile").AsString();
this.StopTimeout = TimeSpan.FromMilliseconds(int.Parse(settings.Get("stopTimeOut").ToString())); this.StopTimeout = TimeSpan.FromMilliseconds(int.Parse(settings.On("stopTimeOut").AsString()));
this.StopParentProcessFirst = settings.Get("StopParentFirst").ToBoolean(); this.StopParentProcessFirst = settings.On("StopParentFirst").AsBool();
this.CheckWinSWEnvironmentVariable = settings.Get("checkWinSWEnvironmentVariable").ToBoolean(); try
{
this.CheckWinSWEnvironmentVariable = settings.Get("checkWinSWEnvironmentVariable").AsBool();
}
catch
{
this.CheckWinSWEnvironmentVariable = true;
}
this.ServiceId = descriptor.Id; this.ServiceId = descriptor.Id;
} }

View File

@ -28,14 +28,14 @@ namespace WinSW.Plugins.SharedDirectoryMapper
public override void Configure(IWinSWConfiguration descriptor, ObjectQuery settings) public override void Configure(IWinSWConfiguration descriptor, ObjectQuery settings)
{ {
var maps = settings.Get("mapping").ToList<object>(); var maps = settings.On("mapping").AsList<object>();
foreach (var map in maps) foreach (var map in maps)
{ {
var mapObject = new ObjectQuery(map); var mapObject = new ObjectQuery(map);
var enable = mapObject.Get("enabled").ToBoolean(); var enable = mapObject.On("enabled").AsBool();
var label = mapObject.Get("label").ToString(); var label = mapObject.On("label").AsString();
var uncpath = mapObject.Get("uncpath").ToString(); var uncpath = mapObject.On("uncpath").AsString();
var config = new SharedDirectoryMapperConfig(enable, label, uncpath); var config = new SharedDirectoryMapperConfig(enable, label, uncpath);
this._entries.Add(config); this._entries.Add(config);

View File

@ -57,9 +57,10 @@ extensions:
{ {
ExtensionConfigurationProvider provider = new ExtensionConfigurationProvider(this._testServiceDescriptor); ExtensionConfigurationProvider provider = new ExtensionConfigurationProvider(this._testServiceDescriptor);
var config = provider.GetExtenstionConfiguration("killOnStartup"); var config = provider.GetExtenstionConfiguration("killOnStartup");
var pid = config.Settings.On("pidfile").ToString();
var stopTimeOut = config.Settings.Get("stopTimeOut").ToString(); var pid = config.Settings.On("pidfile").AsString();
var StopParentFirst = config.Settings.Get("StopParentFirst").ToString(); var stopTimeOut = config.Settings.On("stopTimeOut").AsString();
var StopParentFirst = config.Settings.On("StopParentFirst").AsString();
System.Console.WriteLine(pid); System.Console.WriteLine(pid);
System.Console.WriteLine(stopTimeOut); System.Console.WriteLine(stopTimeOut);