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 {
var arguments = argResults!.rest;
if (arguments.contains('--help') || arguments.contains('-h')) {
console.info('dpk $name passes its arguments to dart pub $name.\n');
return context.runDart(['pub', name, ...arguments]);
}
if (name == 'add') {
arguments = _withCatalogVersions(arguments);
}
final project = context.project;
return withTerminalTitle(
console,
'dpk $name',
() => context.withHooks(name, (stack) async {
final exitCode = await context.runDart(
['pub', ...context.pubFlags, name, ...arguments],
useProjectCache: name != 'global',
environment: stack.toEnvironment(),
);
if (exitCode != 0 ||
!definition.changesResolution ||
project == null ||
!project.isProjectMode) {
return exitCode;
}
return ProjectCache.forProject(project, context).sync();
}),
);
}