getConfig function
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;
}