Lumi/companion/src/Lumi.Companion.App/Program.cs
2026-07-22 15:47:56 +02:00

46 lines
1.3 KiB
C#

using Avalonia;
namespace Lumi.Companion.App;
internal static class Program
{
internal static SingleInstanceCoordinator? InstanceCoordinator { get; private set; }
internal static bool LaunchInBackground { get; private set; }
[STAThread]
public static int Main(string[] args)
{
if (!OperatingSystem.IsWindows())
{
Console.Error.WriteLine("The first Lumi Companion release supports Windows x64 only.");
return 2;
}
if (UpdateApplier.IsApplyRequest(args)) return UpdateApplier.Apply(args);
if (ObsBridgeManager.IsMaintenanceRequest(args)) return ObsBridgeManager.RunMaintenance(args);
LaunchInBackground = args.Contains("--background", StringComparer.OrdinalIgnoreCase);
InstanceCoordinator = new SingleInstanceCoordinator();
if (!InstanceCoordinator.IsPrimary)
{
InstanceCoordinator.SignalPrimary();
InstanceCoordinator.Dispose();
return 0;
}
try
{
return BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
finally
{
InstanceCoordinator.Dispose();
}
}
public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}