detectTargetFiles function
Implementation
Set<String> detectTargetFiles(String root) {
final analysisOptions = File('$root/analysis_options.yaml');
if (!analysisOptions.existsSync()) {
return defaultFiles(root);
}
final yaml = loadYaml(analysisOptions.readAsStringSync());
final apiGuard = yaml['api_guard'] as YamlMap?;
if (apiGuard == null) {
return defaultFiles(root);
}
final include = apiGuard['include'];
if (include == null) {
return defaultFiles(root);
}
final targetFiles = <String>{};
// Include parameter is a list of strings
if (include is YamlList) {
for (final item in include) {
targetFiles.addAll(
Glob(item).listSync(root: root).map((e) => normalize(e.path)));
}
}
// Include parameter is a single string
if (include is String) {
targetFiles.addAll(
Glob(include).listSync(root: root).map((e) => normalize(e.path)));
}
return targetFiles;
}