summaryrefslogtreecommitdiff
path: root/internal/askcli/command_write.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-26 23:45:09 +0200
committerPaul Buetow <paul@buetow.org>2026-03-26 23:45:09 +0200
commitb67069c110c210b05507fca839d45b43431f5e86 (patch)
treeaeabcb0a86ba2cb8e9732605f6fea85538b32454 /internal/askcli/command_write.go
parentd4bdc94f5b29a9baa8517acd2d363383e1e3ee53 (diff)
askcli: resolve aliases for selector task 0b9480fe-ec1b-4c0e-a8b0-88f1f08b56d3
Diffstat (limited to 'internal/askcli/command_write.go')
-rw-r--r--internal/askcli/command_write.go96
1 files changed, 48 insertions, 48 deletions
diff --git a/internal/askcli/command_write.go b/internal/askcli/command_write.go
index 64000d7..afa1475 100644
--- a/internal/askcli/command_write.go
+++ b/internal/askcli/command_write.go
@@ -12,18 +12,18 @@ func (d Dispatcher) handleDenotate(ctx context.Context, args []string, stdout, s
io.WriteString(stderr, "error: ask denotate requires a UUID and text argument\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
text := args[2]
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "denotate", text}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "denotate", text}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -32,18 +32,18 @@ func (d Dispatcher) handleModify(ctx context.Context, args []string, stdout, std
io.WriteString(stderr, "error: ask modify requires a UUID and modification args\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
modArgs := args[2:]
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, append([]string{"uuid:" + uuid, "modify"}, modArgs...), nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, append([]string{"uuid:" + resolved.UUID, "modify"}, modArgs...), nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -52,18 +52,18 @@ func (d Dispatcher) handleAnnotate(ctx context.Context, args []string, stdout, s
io.WriteString(stderr, "error: ask annotate requires a UUID and note argument\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
note := strings.Join(args[2:], " ")
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "annotate", note}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "annotate", note}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -72,19 +72,19 @@ func (d Dispatcher) handleStart(ctx context.Context, args []string, stdout, stde
io.WriteString(stderr, "error: ask start requires a UUID argument\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
var outBuf bytes.Buffer
// uuid:<uuid> is used as the filter so taskwarrior selects the exact task;
// the action verb follows the filter.
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "start"}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "start"}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -93,17 +93,17 @@ func (d Dispatcher) handleStop(ctx context.Context, args []string, stdout, stder
io.WriteString(stderr, "error: ask stop requires a UUID argument\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "stop"}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "stop"}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -112,17 +112,17 @@ func (d Dispatcher) handleDone(ctx context.Context, args []string, stdout, stder
io.WriteString(stderr, "error: ask done requires a UUID argument\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "done"}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "done"}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -131,18 +131,18 @@ func (d Dispatcher) handlePriority(ctx context.Context, args []string, stdout, s
io.WriteString(stderr, "error: ask priority requires a UUID and priority (H/M/L)\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
priority := args[2]
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "modify", "priority:" + priority}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "modify", "priority:" + priority}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}
@@ -151,17 +151,17 @@ func (d Dispatcher) handleTag(ctx context.Context, args []string, stdout, stderr
io.WriteString(stderr, "error: ask tag requires a UUID and +/-tag\n")
return 1, nil
}
- uuid := NormalizeUUID(args[1])
- if IsNumericID(uuid) {
- io.WriteString(stderr, RejectNumericID())
- return 1, nil
+ resolved, _, code, err := d.resolveTaskSelector(ctx, args[1], stderr)
+ if err != nil {
+ writeInfoError(stderr, err)
+ return code, nil
}
tag := args[2]
var outBuf bytes.Buffer
- code, err := d.runner.Run(ctx, []string{"uuid:" + uuid, "modify", tag}, nil, &outBuf, io.Discard)
+ code, err = d.runner.Run(ctx, []string{"uuid:" + resolved.UUID, "modify", tag}, nil, &outBuf, io.Discard)
if code != 0 {
return code, err
}
- io.WriteString(stdout, FormatSuccess(uuid))
+ io.WriteString(stdout, FormatSuccess(resolved.UUID))
return 0, nil
}