Console base WIP 2

This commit is contained in:
2023-08-07 17:52:47 +02:00
parent b9adbc8272
commit 9a63516aba
18 changed files with 193 additions and 79 deletions

View File

@@ -29,7 +29,6 @@ public class Application : Avalonia.Application
.AddContainerSizeScanner()
.AddSearch()
.AddCompression()
.AddConfiguration(configuration)
.ConfigureFont(configuration)
.RegisterLogging()
.RegisterServices()

View File

@@ -8,6 +8,7 @@ using System.Runtime.ExceptionServices;
using System.Threading.Tasks;
using Avalonia;
using Avalonia.ReactiveUI;
using FileTime.App.Core;
using Serilog;
using Serilog.Debugging;
@@ -18,43 +19,6 @@ public static class Program
public static string AppDataRoot { get; private set; }
public static string EnvironmentName { get; private set; }
private static void InitDevelopment()
{
EnvironmentName = "Development";
AppDataRoot = Path.Combine(Environment.CurrentDirectory, "appdata");
}
private static void InitRelease()
{
EnvironmentName = "Release";
var possibleDataRootsPaths = new List<string>
{
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "FileTime"),
Path.Combine(Assembly.GetEntryAssembly()?.Location ?? ".", "fallbackDataRoot")
};
string? appDataRoot = null;
foreach (var possibleAppDataRoot in possibleDataRootsPaths)
{
try
{
var appDataRootDirectory = new DirectoryInfo(possibleAppDataRoot);
if (!appDataRootDirectory.Exists) appDataRootDirectory.Create();
//TODO write test
appDataRoot = possibleAppDataRoot;
break;
}
catch
{
}
}
AppDataRoot = appDataRoot ?? throw new UnauthorizedAccessException();
}
private static void InitLogging()
{
SelfLog.Enable(l => Debug.WriteLine(l));
@@ -83,12 +47,13 @@ public static class Program
public static void Main(string[] args)
{
#if DEBUG
InitDevelopment();
(AppDataRoot, EnvironmentName) = Init.InitDevelopment();
#endif
if (AppDataRoot is null)
{
InitRelease();
(AppDataRoot, EnvironmentName) = Init.InitRelease();
}
InitLogging();
Log.Logger.Information("Early app starting...");

View File

@@ -105,12 +105,4 @@ public static class Startup
return serviceCollection;
}
internal static IServiceCollection AddConfiguration(this IServiceCollection serviceCollection, IConfigurationRoot configuration)
{
return serviceCollection
.Configure<ProgramsConfiguration>(configuration.GetSection(SectionNames.ProgramsSectionName))
.Configure<KeyBindingConfiguration>(configuration.GetSection(SectionNames.KeybindingSectionName))
.AddSingleton<IConfiguration>(configuration);
}
}