run method

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

Runs this command.

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

Implementation

@override
Future<int> run() async {
  final options = PubRemoveOptions.fromArgResults(argResults!);
  final arguments = [
    'pub',
    ...buildGlobalArgs(options.globalPubOptions),
    'remove',
    if (options.offline) '--offline',
    if (options.dryRun) '--dry-run',
    if (options.precompile) '--precompile',
    ...argResults!.rest,
  ];

  if (options.globalPubOptions.globalOptions.verbose) {
    logger.info('Running: dart ${arguments.join(' ')}');
  }

  final pubProcess = await Process.start(
    'dart',
    arguments,
    environment: getCacheEnv(options.globalPubOptions.cacheDir),
  );

  stdout.addStream(pubProcess.stdout);
  stderr.addStream(pubProcess.stderr);

  return await pubProcess.exitCode;
}