runCommand static method
Future<int>
runCommand({
- required CliInvocation invocation,
- required Logger logger,
- required Prompter prompter,
- required GroupStore store,
Implementation
static Future<int> runCommand({
required CliInvocation invocation,
required Logger logger,
required Prompter prompter,
required GroupStore store,
}) async {
final inv = invocation;
if (inv.positionals.isEmpty) {
logger.log('Usage: mono ungroup <group_name>', level: 'error');
return 2;
}
final groupName = inv.positionals.first.trim();
if (groupName.isEmpty || groupName.startsWith(':')) {
logger.log('Invalid group name: "$groupName"', level: 'error');
return 2;
}
if (!await store.exists(groupName)) {
logger.log('Group "$groupName" does not exist.', level: 'error');
return 2;
}
final ok = await prompter.confirm(
'Remove group "$groupName"? This cannot be undone.',
defaultValue: false,
);
if (!ok) {
logger.log('Aborted.', level: 'error');
return 1;
}
await store.deleteGroup(groupName);
logger.log('Group "$groupName" removed.');
return 0;
}