run method
Implementation
Future<ExitCode> run() async {
ExitCode exitCode;
final versionCheck = args.get<bool>('version-check', defaultValue: true);
if (args['disable-analytics'] case true) {
analytics.disable();
}
try {
logger
..detail('Received args: $args')
..detail('VERSION CHECK: $versionCheck');
exitCode = await runCommand();
} catch (error, stack) {
logger
..err('$error')
..detail('$stack');
exitCode = ExitCode.software;
} finally {
if (args.path case ['update', ...]) {
logger.detail('Skipping version check');
} else if (!versionCheck) {
logger.detail('Skipping version check');
} else {
logger.detail('Checking for updates');
if (!await isUpToDate.check()) {
final latestVersion = await isUpToDate.latestVersion();
logger.info(
'A new version is available ($latestVersion). '
'Run `sip update` to update.',
);
}
}
}
return exitCode;
}