Доработан вызов updater.exe
All checks were successful
CI / build-test (push) Successful in 30s
Release / pack-and-publish (release) Successful in 30s

This commit is contained in:
2025-11-27 10:55:38 +03:00
parent cc490c7112
commit 2cb585c222
14 changed files with 173 additions and 98 deletions

View File

@@ -1,5 +1,5 @@
using System.Diagnostics;
using System.Security.Cryptography;
using ReleaseUpdater.Common;
using System.Diagnostics;
using Updater.Core;
namespace Updater;
@@ -9,35 +9,34 @@ internal sealed class Program
static int Main(string[] args)
{
var logger = new ConsoleLogger();
Options? options;
try
var parseResult = ArgumentsToolkit.ArgumentsParser.Parse<Options>(args);
if (!parseResult.Success)
{
options = Options.Parse(args);
}
catch (Exception ex)
{
logger.Error($"Arguments error: {ex.Message}");
Console.WriteLine(Options.Usage);
logger.Error($"Arguments error:");
parseResult.Errors.ForEach(t => logger.Error(t.Message));
return ExitCodes.InvalidArgs;
}
var options = parseResult.Value!;
Thread.Sleep(options.UpdateDelayMs);
if (options.WaitProcess != null)
try
{
using (var proc = Process.GetProcessById(options.WaitProcess.Value))
try
{
logger.Info($"Waiting for the process to complete {options.WaitProcess}...");
proc.WaitForExit(); // блокирует выполнение до завершения процесса
logger.Info("Process is completed.");
using (var proc = Process.GetProcessById(options.WaitProcess.Value))
{
logger.Info($"Waiting for the process to complete {options.WaitProcess}...");
proc.WaitForExit(); // блокирует выполнение до завершения процесса
logger.Info("Process is completed.");
}
}
}
catch (ArgumentException)
{
catch (ArgumentException)
{
logger.Info($"Process with PID {options.WaitProcess} not found.");
}
}
var extractor = new ZipExtractor(logger);
@@ -45,6 +44,8 @@ internal sealed class Program
var procMgr = new ProcessManager(logger);
var app = new UpdaterApp(logger, extractor, installer, procMgr);
return app.Run(options);
var exitCode = app.Run(options);
return exitCode;
}
}