private ExecuteResultEnum RunConfigVersionCheck(ICommandOptions options) { if (options.NoVersionCheck) { return(ExecuteResultEnum.Skipped); } options.NoVersionCheck = true; var check = _configFile.CheckVersion(); if (!check.DoesMatch) { if (check.SpocRVersion.IsGreaterThan(check.ConfigVersion)) { _reportService.Warn($"Your local SpocR Version {check.SpocRVersion.ToVersionString()} is greater than the spocr.json Version {check.ConfigVersion.ToVersionString()}"); var answer = SpocrPrompt.GetSelectionMultiline($"Do you want to continue?", new List <string> { "Continue", "Cancel" }); if (answer.Value != "Continue") { return(ExecuteResultEnum.Aborted); } } else if (check.SpocRVersion.IsLessThan(check.ConfigVersion)) { _reportService.Warn($"Your local SpocR Version {check.SpocRVersion.ToVersionString()} is lower than the spocr.json Version {check.ConfigVersion.ToVersionString()}"); var answer = SpocrPrompt.GetSelectionMultiline($"Do you want to continue?", new List <string> { "Continue", "Cancel", $"Update SpocR to {_autoUpdaterService.GetLatestVersionAsync()}" }); switch (answer.Value) { case "Update": _autoUpdaterService.InstallUpdate(); break; case "Continue": // Do nothing break; default: return(ExecuteResultEnum.Aborted); } } } return(ExecuteResultEnum.Succeeded); }
// Parameter: // force: // Run always even the configuration determines as paused or disabled public async Task RunAsync(bool force = false) { if (!force) { if (!_globalConfigFile.Config.AutoUpdate.Enabled) { return; } var now = DateTime.Now.Ticks; var nextCheckTicks = _globalConfigFile.Config.AutoUpdate.NextCheckTicks; var isExceeded = now > nextCheckTicks; if (!isExceeded) { return; } } var latestVersion = await this._packageManager.GetLatestVersionAsync(); var skipThisUpdate = latestVersion.ToVersionString() == _globalConfigFile.Config.AutoUpdate.SkipVersion; if (!skipThisUpdate && latestVersion.IsGreaterThan(_spocrService.Version)) { _reportService.PrintImportantTitle($"A new SpocR version {latestVersion} is available"); var answer = SpocrPrompt.GetYesNo($"Do you want to update SpocR?", false); if (answer) { InstallUpdate(); } // else if (answer.skip) // { // WriteSkipThiSVersion(latestVersion); // return; // } else { WriteLongPause(); return; } } WriteShortPause(); }