getConfig function

DfnConfig getConfig(
  1. Logger logger
)

Retrieve the dfn configuration. Will create the configuration if it does not exist.

Implementation

DfnConfig getConfig(Logger logger) {
  logger.detail('[getConfig] Checking for if home path exists: $home.');

  if (!Directory(p.normalize('$home')).existsSync()) {
    throw FileSystemException('User home path does not exist.', '$home');
  }

  logger.detail('[getConfig] Home path exists: $home.');
  final path = p.canonicalize(p.join('$home', '.dfn'));
  final configFile = File(path);
  logger.detail('[getConfig] Checking for if dfn config exists: $path.');

  if (!configFile.existsSync()) {
    logger.detail(
      '[getConfig] No dfn config found. Creating empty dfn config at $path.',
    );
    // initialize the default config
    final empty = DfnConfig.empty(configFile);
    final config = writeConfig(empty, logger);
    return config;
  } else {
    logger.detail('[getConfig] dfn config exists at: $path');
  }
  final contents = configFile.readAsStringSync();
  final config = DfnConfig.fromJsonAndFile(
    jsonDecode(contents) as Map<String, dynamic>,
    configFile,
  );
  return config;
}