runCli function

Future<int> runCli(
  1. List<String> argv, {
  2. required CliWiring wiring,
})

Implementation

Future<int> runCli(List<String> argv, {required CliWiring wiring}) async {
  final invocation = wiring.parser.parse(argv);

  final ctx = CliContext(
    invocation: invocation,
    workspaceConfig: wiring.workspaceConfig,
    envBuilder: wiring.envBuilder,
    plugins: wiring.plugins,
    executor: wiring.taskExecutor,
    packageScanner: wiring.packageScanner,
    graphBuilder: wiring.graphBuilder,
    targetSelector: wiring.targetSelector,
    commandPlanner: wiring.commandPlanner,
    clock: wiring.clock,
    pathService: wiring.pathService,
    prompter: wiring.prompter,
    logger: wiring.logger,
    router: wiring.router,
  );

  try {
    final command = ctx.router.getCommand(invocation);
    return await command.run(ctx);
  } catch (e, st) {
    wiring.logger.log('CLI failed: $e', level: 'error');
    wiring.logger.log('$st', level: 'error');
    return 1;
  }
}