getFileExtensionsFromBashCommand function
Extracts file extensions from a bash command for analytics.
Implementation
AnalyticsVerifiedString? getFileExtensionsFromBashCommand(
String command, [
String? simulatedSedEditFilePath,
]) {
if (!command.contains('.') && simulatedSedEditFilePath == null) return null;
String? result;
final seen = <String>{};
if (simulatedSedEditFilePath != null) {
final ext = getFileExtensionForAnalytics(simulatedSedEditFilePath);
if (ext != null) {
seen.add(ext);
result = ext;
}
}
for (final subcmd in command.split(_compoundOperatorRegex)) {
if (subcmd.isEmpty) continue;
final tokens = subcmd.split(_whitespaceRegex);
if (tokens.length < 2) continue;
final firstToken = tokens[0];
final slashIdx = firstToken.lastIndexOf('/');
final baseCmd = slashIdx >= 0
? firstToken.substring(slashIdx + 1)
: firstToken;
if (!_fileCommands.contains(baseCmd)) continue;
for (var i = 1; i < tokens.length; i++) {
final arg = tokens[i];
if (arg.startsWith('-')) continue;
final ext = getFileExtensionForAnalytics(arg);
if (ext != null && !seen.contains(ext)) {
seen.add(ext);
result = result != null ? '$result,$ext' : ext;
}
}
}
return result;
}