diffFiles method
Implementation
Future<List<String>?> diffFiles({
List<String> diffArgs = const [],
String? diffFilters,
}) async {
final filters = switch (diffFilters) {
final String filters => filters,
_ => 'ACMR',
};
final diff = switch (diffArgs) {
_ when diffArgs.isNotEmpty => {...diffArgs, '--name-only'},
_ => ['--staged', 'HEAD', '--name-only'],
};
final result = await Process.run('git', [
'diff',
...diff,
'--diff-filter=$filters',
]);
final out = switch (result.stdout) {
final String files => files.trim(),
_ => null,
};
if (out == null) {
logger
..err('Failed to get changed files')
..detail('Error: ${result.stderr}');
return null;
}
final files =
out.split('\n').where((element) => element.isNotEmpty).toList();
return files;
}