示例#1
0
        /// <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));
            });
        }
示例#2
0
        /// <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);
                });
            });
        }