run method

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

Runs this command.

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

Implementation

@override
Future<void> run() async {
  final configPath = argResults?.rest.firstOrNull;

  if (configPath == null || configPath.isEmpty) {
    usageException('Please provide a config file path');
  }

  final baseUrl = argResults!['base-url'] as String;
  final token = argResults?['token'] as String?;
  final headerList = argResults?['header'] as List<String>? ?? [];
  final verbose = argResults?['verbose'] as bool? ?? false;

  final headers = <String, String>{
    'Content-Type': 'application/json',
    'Accept': 'application/json',
  };

  if (token != null && token.isNotEmpty) {
    headers['Authorization'] = 'Bearer $token';
  }

  for (final h in headerList) {
    final parts = h.split(':');
    if (parts.length >= 2) {
      headers[parts[0].trim()] = parts.sublist(1).join(':').trim();
    }
  }

  await _testConfig(configPath, baseUrl, headers, verbose);
}