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;
}
var extensionConfigListObject = new ObjectQuery(extensions).ToList<object>();
var extensionConfigListObject = new ObjectQuery(extensions).AsList<object>();
foreach (var item in extensionConfigListObject)
{
var configObject = new ObjectQuery(item);
var id = configObject.On("id").ToString();
var id = configObject.On("id").AsString();
result.Add(id);
}

View File

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

View File

@ -40,7 +40,7 @@ namespace WinSW.Util
return this;
}
public new string ToString()
public string AsString()
{
if (this.current == null)
{
@ -57,7 +57,7 @@ namespace WinSW.Util
return result;
}
public List<T> ToList<T>()
public List<T> AsList<T>()
{
if (this.current == null)
{
@ -80,7 +80,7 @@ namespace WinSW.Util
return result;
}
public bool ToBoolean()
public bool AsBool()
{
if (this.current == null)
{
@ -135,7 +135,7 @@ namespace WinSW.Util
return this;
}
private object? Query(object dic, string key)
private object? Query(object? dic, string key)
{
if (dic == null)
{
@ -156,5 +156,10 @@ namespace WinSW.Util
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)
{
this.Pidfile = settings.Get("pidfile").ToString();
this.StopTimeout = TimeSpan.FromMilliseconds(int.Parse(settings.Get("stopTimeOut").ToString()));
this.StopParentProcessFirst = settings.Get("StopParentFirst").ToBoolean();
this.CheckWinSWEnvironmentVariable = settings.Get("checkWinSWEnvironmentVariable").ToBoolean();
this.Pidfile = settings.On("pidfile").AsString();
this.StopTimeout = TimeSpan.FromMilliseconds(int.Parse(settings.On("stopTimeOut").AsString()));
this.StopParentProcessFirst = settings.On("StopParentFirst").AsBool();
try
{
this.CheckWinSWEnvironmentVariable = settings.Get("checkWinSWEnvironmentVariable").AsBool();
}
catch
{
this.CheckWinSWEnvironmentVariable = true;
}
this.ServiceId = descriptor.Id;
}

View File

@ -28,14 +28,14 @@ namespace WinSW.Plugins.SharedDirectoryMapper
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)
{
var mapObject = new ObjectQuery(map);
var enable = mapObject.Get("enabled").ToBoolean();
var label = mapObject.Get("label").ToString();
var uncpath = mapObject.Get("uncpath").ToString();
var enable = mapObject.On("enabled").AsBool();
var label = mapObject.On("label").AsString();
var uncpath = mapObject.On("uncpath").AsString();
var config = new SharedDirectoryMapperConfig(enable, label, uncpath);
this._entries.Add(config);

View File

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