Implement autostart functionality, ZIP packaging, and related installation scripts; update documentation and tests

This commit is contained in:
2026-09-09 18:27:32 +03:00
parent 49d10a5242
commit 369c0347a7
18 changed files with 368 additions and 13 deletions
+5 -2
View File
@@ -12,16 +12,18 @@ Console.OutputEncoding = Encoding.UTF8;
Console.Title = "MusicBridge Agent";
var lan = false;
var tray = false;
var minimized = false;
var port = 8765;
for (var i = 0; i < args.Length; i++)
{
if (args[i] == "--lan") lan = true;
else if (args[i] == "--tray") tray = true;
else if (args[i] == "--minimized") { minimized = true; tray = true; }
else if (args[i] == "--port" && i + 1 < args.Length && int.TryParse(args[++i], out var parsed) && parsed is > 0 and <= 65535)
port = parsed;
else
{
Console.WriteLine("Запуск: dotnet run -- [--tray] [--lan] [--port 8765]");
Console.WriteLine("Запуск: dotnet run -- [--tray] [--minimized] [--lan] [--port 8765]");
Console.WriteLine("Без --lan соединения разрешены только с этого ПК. Веб-интерфейса нет.");
return;
}
@@ -48,7 +50,8 @@ try
using var qrWindow = new PairingWindowHost(pairing, fingerprint, () => Volatile.Read(ref qrEndpoints));
string networkStatus = lan ? "Подключение к домашней сети…" : "Локальный режим. Для iPhone запусти с --lan.";
using var desktop = tray ? new DesktopHost(() => server.Latest, media, pairing,
() => Volatile.Read(ref networkStatus), qrWindow.Open, shutdown.Cancel) : null;
() => Volatile.Read(ref networkStatus), qrWindow.Open, shutdown.Cancel,
startup: new StartupSettings(Path.Combine(AppContext.BaseDirectory, "MusicBridge.Agent.exe"), lan, port), minimized: minimized) : null;
if (desktop is not null)
{
await desktop.StartAsync();