run method

  1. @override
Future<void> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<void> run() async {
  logger.info('Rekeens CLI Doctor');
  logger.info('');

  var allGood = true;

  allGood = await _checkTool('Dart', ['--version']) && allGood;
  allGood = await _checkTool('Flutter', ['--version']) && allGood;
  allGood = await _checkTool('Git', ['--version']) && allGood;

  logger.info('');
  logger.info('Optional tools');
  logger.info('');

  final androidOk = await _checkAndroidSdk();
  final xcodeOk = await _checkXcode();
  final chromeOk = await _checkChrome();

  final optionalOk = androidOk && xcodeOk && chromeOk;

  logger.info('');
  if (allGood) {
    logger.success('Core environment is ready.');
  } else {
    logger.err('Some core tools are missing or not in PATH.');
    exitCode = 1;
  }

  if (optionalOk) {
    logger.success('All optional tools are available.');
  } else {
    logger.warn(
      'Some optional tools are missing (mobile/web development may be limited).',
    );
  }
}