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 configFile = File(_configPath);
if (!configFile.existsSync()) {
logger.info('No configuration file found');
logger.info('');
logger.info(
'Run ${lightCyan.wrap('pubmind config set --api-key sk-...')} to create one');
return ExitCode.success.code;
}
try {
final content = configFile.readAsStringSync();
final config = jsonDecode(content) as Map<String, dynamic>;
logger.info('📄 ${lightCyan.wrap('Configuration:')}');
logger.info('');
logger.info('Config file: ${darkGray.wrap(_configPath)}');
logger.info('');
if (config.containsKey('openai_api_key')) {
final key = config['openai_api_key'] as String;
final maskedKey =
'${key.substring(0, 7)}...${key.substring(key.length - 4)}';
logger.info('OpenAI API Key: ${lightGreen.wrap(maskedKey)}');
} else {
logger.info('OpenAI API Key: ${darkGray.wrap('Not set')}');
}
return ExitCode.success.code;
} catch (e) {
logger.err('Failed to read configuration: $e');
return ExitCode.software.code;
}
}