initialize method

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

Implementation

@override
Future<void> initialize() async {
  for (final arg in arguments) {
    if (arg.startsWith('--')) {
      addConfigArgument(arg.substring(2));
    } else {
      addConfigFile(File(arg));
    }

    final file = File(arg);

    if (!await file.exists()) {
      throw Exception('Config file "${file.path}" not found.');
    }

    try {
      final stringContents = await file.readAsString();
      final mapContents = (extension(file.path).toLowerCase() == '.json')
          ? jsonDecode(stringContents)
          : loadYaml(stringContents);

      _merge(_configMap, mapContents);
    } catch (e, stack) {
      _log.critical(
        'Could not load config file "${file.path}".',
        error: e,
        trace: stack,
        sender: 'DataHub',
      );
    }
  }

  _readDatahubConfig();
}