mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 00:26:07 +02:00
57 lines
1.5 KiB
C#
57 lines
1.5 KiB
C#
using EchoHub.Client;
|
|
using EchoHub.Client.Config;
|
|
using EchoHub.Client.Themes;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Serilog;
|
|
using Terminal.Gui.App;
|
|
|
|
var appSettingsPath = Path.Combine(AppContext.BaseDirectory, "appsettings.json");
|
|
if (!File.Exists(appSettingsPath))
|
|
{
|
|
using var stream = typeof(AppOrchestrator).Assembly
|
|
.GetManifestResourceStream("EchoHub.Client.appsettings.example.json");
|
|
|
|
if (stream is not null)
|
|
{
|
|
using var file = File.Create(appSettingsPath);
|
|
stream.CopyTo(file);
|
|
}
|
|
}
|
|
|
|
var configuration = new ConfigurationBuilder()
|
|
.SetBasePath(AppContext.BaseDirectory)
|
|
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false)
|
|
.Build();
|
|
|
|
Log.Logger = new LoggerConfiguration()
|
|
.ReadFrom.Configuration(configuration)
|
|
.CreateLogger();
|
|
|
|
Log.Information("EchoHub client starting");
|
|
|
|
try
|
|
{
|
|
var config = ConfigManager.Load();
|
|
Log.Information("Configuration loaded, active theme: {Theme}", config.ActiveTheme);
|
|
|
|
var app = Application.Create().Init();
|
|
|
|
var theme = ThemeManager.GetTheme(config.ActiveTheme);
|
|
ThemeManager.ApplyTheme(theme);
|
|
|
|
using var orchestrator = new AppOrchestrator(app, config);
|
|
|
|
app.Run(orchestrator.MainWindow);
|
|
app.Dispose();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.Fatal(ex, "EchoHub client crashed");
|
|
throw;
|
|
}
|
|
finally
|
|
{
|
|
Log.Information("EchoHub client shutting down");
|
|
Log.CloseAndFlush();
|
|
}
|