summaryrefslogtreecommitdiff
path: root/internal/askcli/dispatch.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-27 11:41:41 +0200
committerPaul Buetow <paul@buetow.org>2026-03-27 11:41:41 +0200
commit2d35eeb40eee8beed7163f41afab279bce2976ef (patch)
treefee5de2c646826cba17aab79f8c57c408c96eb71 /internal/askcli/dispatch.go
parentf57ccb885d20c48e1dae65b8ad5c46375b9a11a9 (diff)
Implement command registry for askcli commands
Diffstat (limited to 'internal/askcli/dispatch.go')
-rw-r--r--internal/askcli/dispatch.go45
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) {