run method

Future<int> run()

Implementation

Future<int> run() async {
  final parsed = Args.parse(
    args,
    bool: const ['help', 'force', 'verbose', 'quiet', 'json', 'no-color'],
    string: const ['pages', 'output'],
    aliases: const {
      'h': 'help',
      'v': 'verbose',
      'q': 'quiet',
      'p': 'pages',
      'o': 'output',
      'f': 'force',
    },
  );
  configureOutput(noColor: parsed.at('no-color')?.safeAs<bool>() == true);

  final showHelp = parsed.at('help')?.safeAs<bool>() == true;
  final positionals = parsed.rest.toList();

  if (positionals.isEmpty || showHelp) {
    if (positionals.isEmpty) {
      _printUsage();
      return 0;
    }
  }

  final command = positionals.first;
  if (showHelp) {
    _printCommandUsage(command);
    return 0;
  }
  switch (command) {
    case 'scan':
      return runScan(parsed);
    case 'init':
      return runInit(parsed);
    case 'generate':
      return runGenerate(parsed);
    case 'watch':
      return runWatch(parsed);
    default:
      stderr.writeln('Unknown command: $command');
      _printUsage();
      return 64;
  }
}