From 793f653db0153a2e74b7f3b224c1133f118da109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Sun, 20 Aug 2023 08:00:03 +0200 Subject: [PATCH] Console set AppData in release --- src/ConsoleApp/FileTime.ConsoleUI/Program.cs | 35 +++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/ConsoleApp/FileTime.ConsoleUI/Program.cs b/src/ConsoleApp/FileTime.ConsoleUI/Program.cs index 1586f19..43ef4ea 100644 --- a/src/ConsoleApp/FileTime.ConsoleUI/Program.cs +++ b/src/ConsoleApp/FileTime.ConsoleUI/Program.cs @@ -15,7 +15,13 @@ using ITheme = FileTime.ConsoleUI.App.Styling.ITheme; Console.OutputEncoding = System.Text.Encoding.UTF8; IConsoleDriver? driver = null; +#if DEBUG (AppDataRoot, EnvironmentName) = Init.InitDevelopment(); +#endif +if (AppDataRoot is null) +{ + (AppDataRoot, EnvironmentName) = Init.InitRelease(); +} InitLogging(); try { @@ -27,9 +33,9 @@ try driver = serviceProvider.GetRequiredService(); Log.Logger.Debug("Using driver {Driver}", driver.GetType().Name); - + driver.SetCursorVisible(false); - + var applicationContext = serviceProvider.GetRequiredService(); var theme = serviceProvider.GetRequiredService(); @@ -68,15 +74,26 @@ static void InitLogging() static IConfigurationRoot CreateConfiguration(string[] strings) { - var configurationRoot = new ConfigurationBuilder() - .AddInMemoryCollection(MainConfiguration.Configuration) - .AddInMemoryCollection(MainConsoleConfiguration.Configuration) + var configurationBuilder = new ConfigurationBuilder() + .AddInMemoryCollection(MainConfiguration.Configuration) + .AddInMemoryCollection(MainConsoleConfiguration.Configuration) #if DEBUG - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) + .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) #endif - .AddCommandLine(strings) - .Build(); - return configurationRoot; + ; + + var configurationDirectory = new DirectoryInfo(Path.Combine(AppDataRoot, "config")); + if (configurationDirectory.Exists) + { + foreach (var settingsFile in configurationDirectory.GetFiles("*.json")) + { + configurationBuilder.AddJsonFile(settingsFile.FullName, optional: true, reloadOnChange: true); + } + } + + configurationBuilder.AddCommandLine(strings); + + return configurationBuilder.Build(); } static bool HandleInfoProviders(string[] args, IServiceProvider serviceProvider)