diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-27 11:41:41 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-27 11:41:41 +0200 |
| commit | 2d35eeb40eee8beed7163f41afab279bce2976ef (patch) | |
| tree | fee5de2c646826cba17aab79f8c57c408c96eb71 /internal/askcli/dispatch.go | |
| parent | f57ccb885d20c48e1dae65b8ad5c46375b9a11a9 (diff) | |
Implement command registry for askcli commands
Diffstat (limited to 'internal/askcli/dispatch.go')
| -rw-r--r-- | internal/askcli/dispatch.go | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/internal/askcli/dispatch.go b/internal/askcli/dispatch.go index 142f7b4..c2c7aab 100644 --- a/internal/askcli/dispatch.go +++ b/internal/askcli/dispatch.go @@ -47,51 +47,14 @@ func (d *Dispatcher) Dispatch(ctx context.Context, args []string, stdin io.Reade d.jsonOutput = jsonOutput if len(args) == 0 { - return d.handleList(ctx, []string{"list"}, stdout, stderr) + args = []string{"list"} } subcommand := args[0] - switch subcommand { - case "info": - return d.handleInfo(ctx, args, stdout, stderr) - case "add": - return d.handleAdd(ctx, args, stdout, stderr) - case "list": - return d.handleList(ctx, args, stdout, stderr) - case "all": - return d.handleAll(ctx, args, stdout, stderr) - case "ready": - return d.handleReady(ctx, args, stdout, stderr) - case "dep": - return d.handleDep(ctx, args, stdout, stderr) - case "urgency": - return d.handleUrgency(ctx, stdout, stderr) - case "annotate": - return d.handleAnnotate(ctx, args, stdout, stderr) - case "start": - return d.handleStart(ctx, args, stdout, stderr) - case "stop": - return d.handleStop(ctx, args, stdout, stderr) - case "done": - return d.handleDone(ctx, args, stdout, stderr) - case "priority": - return d.handlePriority(ctx, args, stdout, stderr) - case "tag": - return d.handleTag(ctx, args, stdout, stderr) - case "modify": - return d.handleModify(ctx, args, stdout, stderr) - case "denotate": - return d.handleDenotate(ctx, args, stdout, stderr) - case "delete": - return d.handleDelete(ctx, args, stdin, stdout, stderr) - case "fish": - return d.handleFish(args, stdout, stderr) - case "help": - return d.help(stdout) - case "complete-uuids": - return d.handleCompleteUUIDs(ctx, stdout, stderr) - default: + entry, ok := commandRegistry.get(subcommand) + if !ok { return d.unknownCommand(stderr, subcommand) } + return entry.handler(d, ctx, args, stdin, stdout, stderr) } func (d *Dispatcher) help(w io.Writer) (int, error) { |
