runCommand method

  1. @override
Future<int?> runCommand(
  1. ArgResults topLevelResults
)

Runs the command specified by topLevelResults.

This is notionally a protected method. It may be overridden or called from subclasses, but it shouldn't be called externally.

It's useful to override this to handle global flags and/or wrap the entire command in a block. For example, you might handle the --verbose flag here to enable verbose logging before running the command.

This returns the return value of Command.run.

Implementation

@override
Future<int?> runCommand(ArgResults topLevelResults) async {
  if (topLevelResults.flag('version')) {
    print('dpk ${Pubspec.version.representation}');
    return 0;
  }

  final commandName = topLevelResults.command?.name;
  if (commandName != null) {
    setTerminalTitle('dpk $commandName');
  } else {
    setTerminalTitle('dpk');
  }

  try {
    return await super.runCommand(topLevelResults);
  } finally {
    restoreTerminalTitle();
  }
}