From 5af26156c7c6a2c96b09bb5d3f4beea097025200 Mon Sep 17 00:00:00 2001 From: whimsical-c4lic0 Date: Fri, 13 Feb 2026 15:17:22 -0600 Subject: [PATCH] Separate OF DL and OF DL GUI projects --- OF DL.Gui/OF DL.Gui.csproj | 21 ++++++++++++++++++ OF DL.Gui/Program.cs | 17 +++++++++++--- OF DL/OF DL.csproj | 1 - OF DL/Program.cs | 45 +------------------------------------- 4 files changed, 36 insertions(+), 48 deletions(-) diff --git a/OF DL.Gui/OF DL.Gui.csproj b/OF DL.Gui/OF DL.Gui.csproj index 1050cfd..94f25be 100644 --- a/OF DL.Gui/OF DL.Gui.csproj +++ b/OF DL.Gui/OF DL.Gui.csproj @@ -1,13 +1,19 @@ + WinExe net10.0 OF_DL.Gui enable enable true + Icon\download.ico + + + + @@ -19,10 +25,25 @@ + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + diff --git a/OF DL.Gui/Program.cs b/OF DL.Gui/Program.cs index c664b27..4dd175b 100644 --- a/OF DL.Gui/Program.cs +++ b/OF DL.Gui/Program.cs @@ -1,12 +1,23 @@ using Avalonia; +using Microsoft.Extensions.DependencyInjection; +using OF_DL.Services; +using Serilog; namespace OF_DL.Gui; -public static class GuiLauncher +public static class Program { - public static void Run(string[] args) + public static void Main(string[] args) { - BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); + ServiceCollection services = new(); + services.AddSingleton(); + ServiceProvider tempProvider = services.BuildServiceProvider(); + ILoggingService loggingService = tempProvider.GetRequiredService(); + + Log.Information("Starting OF DL GUI"); + + BuildAvaloniaApp() + .StartWithClassicDesktopLifetime(args); } private static AppBuilder BuildAvaloniaApp() => diff --git a/OF DL/OF DL.csproj b/OF DL/OF DL.csproj index 602daa6..f4c4eb8 100644 --- a/OF DL/OF DL.csproj +++ b/OF DL/OF DL.csproj @@ -15,7 +15,6 @@ - diff --git a/OF DL/Program.cs b/OF DL/Program.cs index e14c45b..f625012 100644 --- a/OF DL/Program.cs +++ b/OF DL/Program.cs @@ -1,7 +1,6 @@ using System.Text.RegularExpressions; using Microsoft.Extensions.DependencyInjection; using OF_DL.CLI; -using OF_DL.Gui; using OF_DL.Models; using OF_DL.Enumerations; using OF_DL.Models.Config; @@ -15,9 +14,6 @@ namespace OF_DL; public class Program(IServiceProvider serviceProvider) { - private const string CliFlag = "--cli"; - private const string NonInteractiveFlag = "--non-interactive"; - private async Task LoadAuthFromBrowser() { IAuthService authService = serviceProvider.GetRequiredService(); @@ -69,58 +65,19 @@ public class Program(IServiceProvider serviceProvider) await authService.SaveToFileAsync(); } - [STAThread] public static async Task Main(string[] args) { - bool runCli = await ShouldRunCliModeAsync(args); - string[] cleanArgs = args.Where(a => !a.Equals(CliFlag, StringComparison.OrdinalIgnoreCase)).ToArray(); - - if (!runCli) - { - GuiLauncher.Run(cleanArgs); - return; - } - AnsiConsole.Write(new FigletText("Welcome to OF-DL").Color(Color.Red)); AnsiConsole.Markup("Documentation: [link]https://docs.ofdl.tools/[/]\n"); AnsiConsole.Markup("Discord server: [link]https://discord.com/invite/6bUW8EJ53j[/]\n\n"); - ServiceCollection services = await ConfigureServices(cleanArgs); + ServiceCollection services = await ConfigureServices(args); ServiceProvider serviceProvider = services.BuildServiceProvider(); - // Get the Program instance and run Program program = serviceProvider.GetRequiredService(); await program.RunAsync(); } - private static async Task ShouldRunCliModeAsync(string[] args) - { - if (args.Any(a => a.Equals(CliFlag, StringComparison.OrdinalIgnoreCase))) - { - return true; - } - - if (args.Any(a => a.Equals(NonInteractiveFlag, StringComparison.OrdinalIgnoreCase))) - { - return true; - } - - ServiceCollection services = new(); - services.AddSingleton(); - services.AddSingleton(); - - await using ServiceProvider provider = services.BuildServiceProvider(); - IConfigService configService = provider.GetRequiredService(); - - bool loaded = await configService.LoadConfigurationAsync(args); - if (!loaded) - { - return false; - } - - return configService.IsCliNonInteractive || configService.CurrentConfig.NonInteractiveMode; - } - private static async Task ConfigureServices(string[] args) { // Set up dependency injection with LoggingService and ConfigService