/// <summary> /// Command check update application /// </summary> /// <param name="app"></param> public static void CheckUpdateApp(this CommandLineApplication app) { app.Command("app-check-update", cmd => { cmd.Description = "Check update application"; cmd.AddFullNameLogo(); cmd.OnExecute(() => app.Out.WriteLine(UpdateHelper.GetInfo(app.Name).Info)); }); }
/// <summary> /// Upgrade application /// </summary> /// <param name="app"></param> public static void UpgradeApp(this CommandLineApplication app) { const string APP_UPGRADE_FINISH = "app-upgrade-finish"; app.Command("app-upgrade", cmd => { cmd.Description = "Upgrade application"; cmd.AddFullNameLogo(); var optQuiet = cmd.Option("--quiet|-q", "Non-interactive mode, does not request confirmation", CommandOptionType.NoValue); cmd.OnExecute(() => { var(Info, IsNewVersion, BrowserDownloadUrl) = UpdateHelper.GetInfo(app.Name); app.Out.WriteLine(Info); if (IsNewVersion) { if (!optQuiet.HasValue()) { if (!Prompt.GetYesNo("Confirm upgrade application?", false)) { app.Out.WriteLine("Upgrade abort!"); return(1); } } app.Out.WriteLine($"Download {BrowserDownloadUrl} ...."); var fileNameNew = UpdateHelper.UpgradePrepare(BrowserDownloadUrl, Process.GetCurrentProcess().MainModule.FileName); Process.Start(fileNameNew, APP_UPGRADE_FINISH); } return(0); }); }); //finish upgrade application app.Command(APP_UPGRADE_FINISH, cmd => { cmd.ShowInHelpText = false; cmd.OnExecute(() => { var fileNameNew = Process.GetCurrentProcess().MainModule.FileName; UpdateHelper.UpgradeFinish(fileNameNew); app.Out.WriteLine("Upgrade completed!"); return(0); }); }); }