From 6ef91c4ab78dcccb80d7aa619291c617bd70dd21 Mon Sep 17 00:00:00 2001 From: Schizo Date: Tue, 20 Jun 2023 22:08:26 +0300 Subject: [PATCH] Adding creating a configuration file if it did not exist before. --- README.md | 14 +++++------ src/MultiConfX/Env/Env.cs | 29 ++++++++++++----------- src/MultiConfX/Ini/Ini.cs | 29 ++++++++++++----------- src/MultiConfX/Properties/AssemblyInfo.cs | 4 ++-- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index e5d76b5..a6c81ee 100644 --- a/README.md +++ b/README.md @@ -6,36 +6,36 @@ Implements reading and modification of configuration files such as INI, ENV. #### .NET CLI ```CLI -> dotnet add package Hopex.MultiConfX --version 23.0.1 +> dotnet add package Hopex.MultiConfX --version 23.0.2 ``` #### Package Manager ```CLI -PM> NuGet\Install-Package Hopex.MultiConfX -Version 23.0.1 +PM> NuGet\Install-Package Hopex.MultiConfX -Version 23.0.2 ``` #### PackageReference ```XML - + ``` #### Paket CLI ```CLI -> paket add Hopex.MultiConfX --version 23.0.1 +> paket add Hopex.MultiConfX --version 23.0.2 ``` #### Script & Interactive ```CLI -> #r "nuget: Hopex.MultiConfX, 23.0.1" +> #r "nuget: Hopex.MultiConfX, 23.0.2" ``` #### Cake ``` // Install Hopex.MultiConfX as a Cake Addin -#addin nuget:?package=Hopex.MultiConfX&version=23.0.1 +#addin nuget:?package=Hopex.MultiConfX&version=23.0.2 // Install Hopex.MultiConfX as a Cake Tool -#tool nuget:?package=Hopex.MultiConfX&version=23.0.1 +#tool nuget:?package=Hopex.MultiConfX&version=23.0.2 ``` # Opportunities diff --git a/src/MultiConfX/Env/Env.cs b/src/MultiConfX/Env/Env.cs index 2a1c13f..4283e09 100644 --- a/src/MultiConfX/Env/Env.cs +++ b/src/MultiConfX/Env/Env.cs @@ -119,25 +119,26 @@ public EnvData Load() /// , if the data was written to the file without errors. public bool Save() { - if (File.Exists(GetPath())) + if (!File.Exists(path: GetPath())) + File.Create(path: GetPath()).Dispose(); + + using (StreamWriter streamWriter = new StreamWriter( + path: GetPath(), + append: false + )) { - using (StreamWriter streamWriter = new StreamWriter(GetPath())) + Data.GetKeys().ForEach(action: key => { - Data.GetKeys().ForEach(action: key => - { - var @keyFormatted = LineFormatter.KeyForEnv(key: key); - var @valueFormatted = LineFormatter.Value(value: Data.Keys[keyFormatted]); - - streamWriter.WriteLine( - value: $"{keyFormatted}={valueFormatted}" - ); - }); - } + var @keyFormatted = LineFormatter.KeyForEnv(key: key); + var @valueFormatted = LineFormatter.Value(value: Data.Keys[keyFormatted]); - return true; + streamWriter.WriteLine( + value: $"{keyFormatted}={valueFormatted}" + ); + }); } - return false; + return true; } /// diff --git a/src/MultiConfX/Ini/Ini.cs b/src/MultiConfX/Ini/Ini.cs index 8bc3270..5340642 100644 --- a/src/MultiConfX/Ini/Ini.cs +++ b/src/MultiConfX/Ini/Ini.cs @@ -136,27 +136,28 @@ public IniData Load() /// , if the data was written to the file without errors. public bool Save() { - if (File.Exists(path: GetPath())) + if (!File.Exists(path: GetPath())) + File.Create(path: GetPath()).Dispose(); + + using (StreamWriter streamWriter = new StreamWriter( + path: GetPath(), + append: false + )) { - using (StreamWriter streamWriter = new StreamWriter(path: GetPath())) + Data.GetSections().ForEach(action: section => { - Data.GetSections().ForEach(action: section => + streamWriter.WriteLine(value: $"[{section.Trim()}]"); + Data.GetKeys(section).ForEach(action: key => { - streamWriter.WriteLine(value: $"[{section.Trim()}]"); - Data.GetKeys(section).ForEach(action: key => - { - var @keyFormatted = LineFormatter.KeyForIni(key: key); - var @valueFormatted = LineFormatter.Value(value: Data.Sections[section][key]); + var @keyFormatted = LineFormatter.KeyForIni(key: key); + var @valueFormatted = LineFormatter.Value(value: Data.Sections[section][key]); - streamWriter.WriteLine(value: $"{keyFormatted}={valueFormatted}"); - }); + streamWriter.WriteLine(value: $"{keyFormatted}={valueFormatted}"); }); - } - - return true; + }); } - return false; + return true; } /// diff --git a/src/MultiConfX/Properties/AssemblyInfo.cs b/src/MultiConfX/Properties/AssemblyInfo.cs index 3cb9c0d..de18820 100644 --- a/src/MultiConfX/Properties/AssemblyInfo.cs +++ b/src/MultiConfX/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // Можно задать все значения или принять номера сборки и редакции по умолчанию // используя "*", как показано ниже: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("23.0.0.1")] -[assembly: AssemblyFileVersion("23.0.0.1")] +[assembly: AssemblyVersion("23.0.0.2")] +[assembly: AssemblyFileVersion("23.0.0.2")]