doRun method

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

Implementation

@override
Future<int> doRun() async {
  // Collect argument values
  final arguments = <String, dynamic>{};

  for (final arg in _definition.arguments) {
    final value = argResults![arg.name];
    if (value != null) {
      arguments[arg.name] = value;
    }
  }

  printVerbose('Executing custom command: ${_definition.name}');
  printVerbose('Arguments: $arguments');
  printVerbose('Verbose mode: enabled');

  try {
    // Create executor with verbose logger if needed
    final executor = isVerbose
        ? CustomCommandExecutor(logger: out)
        : _executor;

    final exitCode = await executor.execute(_definition, arguments);
    return exitCode;
  } catch (e, st) {
    printError('Failed to execute custom command: $e');
    printVerbose('Stack trace: $st');
    return 1;
  }
}