From d4890201348fa741db927802e61edae8fc6e2721 Mon Sep 17 00:00:00 2001 From: Buddhika Chathuranga Date: Tue, 2 Jun 2020 19:49:10 +0530 Subject: [PATCH] Update YamlConfigurations.cs --- .../Configuration/YamlConfiguration.cs | 28 +++++++++++-------- src/Core/WinSWCore/ServiceDescriptorYaml.cs | 16 ++++++----- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/Core/WinSWCore/Configuration/YamlConfiguration.cs b/src/Core/WinSWCore/Configuration/YamlConfiguration.cs index 7b7f6fc..ed186f2 100644 --- a/src/Core/WinSWCore/Configuration/YamlConfiguration.cs +++ b/src/Core/WinSWCore/Configuration/YamlConfiguration.cs @@ -1,13 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace winsw.Configuration +namespace winsw.Configuration { public class YamlConfiguration { - readonly ServiceAccount? serviceAccount; - readonly BasicConfigs? basicConfigs; + public string? id { get; set; } + public string? name { get; set; } + public string? description { get; set; } + public string? executable { get; set; } + public string? workingdirectory { get; set; } + + public ServiceAccount? serviceaccount { get; set; } + public Log? log { get; set; } } public class ServiceAccount @@ -18,11 +20,13 @@ namespace winsw.Configuration public string allowservicelogon { get; set; } } - public class BasicConfigs + public class Log { - public string id { get; set; } - public string name { get; set; } - public string description { get; set; } - public string executable { get; set; } + public string sizeThreshold { get; set; } + public string keepFiles { get; set; } + public string pattern { get; set; } + public string autoRollAtTime { get; set; } + public string period { get; set; } + public string mod { get; set; } } } diff --git a/src/Core/WinSWCore/ServiceDescriptorYaml.cs b/src/Core/WinSWCore/ServiceDescriptorYaml.cs index 6459f86..1f1e935 100644 --- a/src/Core/WinSWCore/ServiceDescriptorYaml.cs +++ b/src/Core/WinSWCore/ServiceDescriptorYaml.cs @@ -1,11 +1,14 @@ using System; using System.IO; using winsw.Configuration; +using YamlDotNet.Serialization; namespace winsw { public class ServiceDescriptorYaml { + protected readonly YamlConfiguration configurations = new YamlConfiguration(); + public static DefaultWinSWSettings Defaults { get; } = new DefaultWinSWSettings(); public string BasePath { get; set; } @@ -24,11 +27,11 @@ namespace winsw DirectoryInfo d = new DirectoryInfo(Path.GetDirectoryName(p)); while (true) { - if (File.Exists(Path.Combine(d.FullName, baseName + ".yaml"))) + if (File.Exists(Path.Combine(d.FullName, baseName + ".yml"))) break; if (d.Parent is null) - throw new FileNotFoundException("Unable to locate " + baseName + ".yaml file within executable directory or any parents"); + throw new FileNotFoundException("Unable to locate " + baseName + ".yml file within executable directory or any parents"); d = d.Parent; } @@ -36,14 +39,13 @@ namespace winsw BaseName = baseName; BasePath = Path.Combine(d.FullName, BaseName); - using(var reader = new StreamReader(BasePath + ".yaml")) + using(var reader = new StreamReader(BasePath + ".yml")) { var file = reader.ReadToEnd(); - Console.WriteLine(file); - } + var deserializer = new DeserializerBuilder().Build(); - // yaml <> object - deserialization and schema validation - // Set environment data + configurations = deserializer.Deserialize(file); + } } } }