run method
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 argResults = super.argResults!;
final parsed = _parseExtras(argResults.arguments);
final args = super.argParser.parse(parsed['args'] as Iterable<String>).rest;
final extra = (parsed['extra'] as List).join(' ');
if (args.isEmpty) {
stdout.writeln(super.usage);
return 0;
} else {
final arg = args.join(' ').trim();
final pubspec = Pubspec();
final info = await pubspec.getInfo();
final scripts = await pubspec.getScripts();
final registry = ScriptsRegistry(scripts);
stdout.writeln('> $info $arg'.bold());
return registry.runScript(arg, extra: extra);
}
}