existingUsersandGroups top-level property
Implementation
final FigGenerator existingUsersandGroups = FigGenerator(
trigger: ':',
getQueryTerm: ':',
script: (List<String> tokens) {
final colonAdded = tokens.any((token) => token.contains(':'));
if (colonAdded) {
return ['bash', '-c', "dscl . -list /Groups PrimaryGroupID | tr -s ' '| sort -r"];
} else {
return ['bash', '-c', "dscl . -list /Users UniqueID | tr -s ' '| sort -r"];
}
},
postProcess: (String out, [List<String>? tokens]) {
final colonAdded = tokens?.any((token) => token.contains(':')) ?? false;
final nFlagUsed = tokens?.any((token) => RegExp(r'^-.*n.*').hasMatch(token)) ?? false;
return out.split('\n').map((line) {
final parts = line.split(' ');
if (parts.length < 2) return null;
final name = parts[0];
final id = parts[1];
return FigSuggestion(
name: nFlagUsed ? id : name,
description: colonAdded
? 'Group - ${nFlagUsed ? name : 'gid: $id'}'
: 'User - ${nFlagUsed ? name : 'uid: $id'}',
icon: colonAdded ? '👥' : '👤',
priority: 90,
);
}).whereType<FigSuggestion>().toList();
},
);