getProjectFiles method
Returns all project files, optionally respecting .gitignore.
Implementation
Future<List<String>> getProjectFiles(
String path, {
bool respectGitignore = true,
}) async {
if (respectGitignore) {
try {
final result = await Process.run(
'git',
['ls-files', '--cached', '--others', '--exclude-standard'],
workingDirectory: path,
stdoutEncoding: utf8,
);
if (result.exitCode == 0) {
final output = (result.stdout as String).trim();
if (output.isNotEmpty) {
return LineSplitter.split(output).toList();
}
}
} catch (_) {
// Fall through to manual listing.
}
}
return _listFilesRecursively(path);
}