using ArgumentsToolkit; namespace ReleaseUpdater.Common; /// Параметры CLI для Updater.exe. public sealed class Options { [Option(nameof(ZipPath), "z", "Путь к скачанному архиву (.zip).", true)] /// Путь к скачанному архиву (.zip). public string ZipPath { get; set; } [Option(nameof(InstallPath), "i", "Целевой каталог установки.", true)] /// Целевой каталог установки. public string InstallPath { get; set; } [Option(nameof(AppExe), "a", "Имя исполняемого файла приложения для перезапуска", true)] /// Имя исполняемого файла приложения для перезапуска (e.g., MyBot.exe). public string AppExe { get; set; } [Option(nameof(RestartDelayMs), "rd", "Миллисекунды ожидания перед перезапуском", false, 500)] /// Необязательно: подождите миллисекунды перед перезапуском. public int RestartDelayMs { get; set; } = 500; [Option(nameof(UpdateDelayMs), "ud", "Миллисекунды ожидания перед обновления", false, 500)] /// Необязательно: подождите миллисекунды перед запуском обновления. public int UpdateDelayMs { get; set; } = 500; [Option(nameof(WaitProcess), "wp", "PID процесса, завершение которого необходимо дождаться", false)] /// Необязательно: дождаться завершения процесса. public int? WaitProcess { get; set; } = null; public static string Usage => "Usage: Updater.exe --zip --installPath --appExe [--restartDelayMs ] [--updateDelayMs ] [--waitProcess ]"; }