getFileStatus function
Get file status (tracked vs untracked).
Implementation
Future<GitFileStatus> getFileStatus({String? cwd}) async {
final result = await _runGit([
'--no-optional-locks',
'status',
'--porcelain',
], cwd: cwd);
final tracked = <String>[];
final untracked = <String>[];
for (final line in result.stdout.trim().split('\n')) {
if (line.isEmpty) continue;
final status = line.substring(0, 2);
final filename = line.substring(2).trim();
if (status == '??') {
untracked.add(filename);
} else if (filename.isNotEmpty) {
tracked.add(filename);
}
}
return GitFileStatus(tracked: tracked, untracked: untracked);
}