loadScriptConfig function
Load the current project script config and validate that its content.
Implementation
Future<ScriptConfig> loadScriptConfig(
final OperatingSystem currentOS,
final Directory currentDir,
) async {
final Directory hooksDir = await GitHooksHandler.getCurrentHooksDir();
if (!hooksDir.existsSync()) {
throw UnrecoverableException(
'Git Hooks directory ${hooksDir.path} not found\n'
'Please run setup tool',
ExitCode.config.code,
);
}
final ConfigCache configCache = FileConfigCache(hooksDir: hooksDir);
final ScriptConfig? scriptConfig = await configCache.loadScriptConfig();
if (scriptConfig == null) {
throw UnrecoverableException(
'Script config not found in dir ${hooksDir.path}\n'
'Please run setup tool',
ExitCode.config.code,
);
}
scriptConfig.validateConfig(currentOS, currentDir.path, hooksDir.path);
return scriptConfig;
}