discoverFiles method
Discover all matching files in the source directory
Implementation
Stream<File> discoverFiles() async* {
final sourceDir = p.join(workingDir, config.sourceDir);
final dir = Directory(sourceDir);
if (!dir.existsSync()) {
throw FileSystemException(
'Source directory does not exist: ${config.sourceDir}',
sourceDir,
);
}
final extensions = config.effectiveExtensions;
// Create glob patterns for each extension
for (final ext in extensions) {
// Remove leading dot if present for glob pattern
final extPattern = ext.startsWith('.') ? ext.substring(1) : ext;
final glob = Glob('**.$extPattern');
await for (final FileSystemEntity entity in glob.list(root: sourceDir)) {
final file = File(entity.path);
if (await file.exists()) {
yield file;
}
}
}
}