コード例 #1
0
ファイル: SpocrManager.cs プロジェクト: nuetzliches/spocr
        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);
        }
コード例 #2
0
        // 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();
        }