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 ]";
}