@@ -95,28 +95,37 @@ class VeryGoodCommandRunner extends CommandRunner<int> {
9595
9696 @override
9797 Future <int ?> runCommand (ArgResults topLevelResults) async {
98- await _checkForUpdates () ;
98+ int ? exitCode = ExitCode .unavailable.code ;
9999 if (topLevelResults['version' ] == true ) {
100100 _logger.info ('very_good version: $packageVersion ' );
101- return ExitCode .success.code;
102- }
103- if (topLevelResults['analytics' ] != null ) {
101+ exitCode = ExitCode .success.code;
102+ } else if (topLevelResults['analytics' ] != null ) {
104103 final optIn = topLevelResults['analytics' ] == 'true' ;
105104 _analytics.enabled = optIn;
106105 _logger.info ('analytics ${_analytics .enabled ? 'enabled' : 'disabled' }.' );
107- return ExitCode .success.code;
106+ exitCode = ExitCode .success.code;
107+ } else {
108+ exitCode = await super .runCommand (topLevelResults);
108109 }
109- return super .runCommand (topLevelResults);
110+ await _checkForUpdates ();
111+ return exitCode;
110112 }
111113
112114 Future <void > _checkForUpdates () async {
113115 try {
114116 final latestVersion = await _pubUpdater.getLatestVersion (packageName);
115117 final isUpToDate = packageVersion == latestVersion;
116118 if (! isUpToDate) {
117- _logger.info (
118- '''${lightYellow .wrap ('A new version of $packageName is available:' )} ${lightCyan .wrap (packageVersion )} -> ${lightCyan .wrap (latestVersion )}''' ,
119- );
119+ _logger
120+ ..info ('' )
121+ ..info ('''
122+ +------------------------------------------------------------------------------------+
123+ | |
124+ | ${lightYellow .wrap ('Update available!' )} ${lightCyan .wrap (packageVersion )} \u 2192 ${lightCyan .wrap (latestVersion )} |
125+ | ${lightYellow .wrap ('Changelog:' )} ${lightCyan .wrap ('https://github.com/verygoodopensource/very_good_cli/releases/tag/v$latestVersion ' )} |
126+ | |
127+ +------------------------------------------------------------------------------------+
128+ ''' );
120129 final response = _logger.prompt ('Would you like to update? (y/n) ' );
121130 if (response.isYes ()) {
122131 final done = _logger.progress ('Updating to $latestVersion ' );
0 commit comments