From ec136666d9592394a7fc3102a4f1007f9917005b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 27 Mar 2026 11:25:05 +0200 Subject: Move selector helpers into task selector --- internal/askcli/task_selector.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'internal/askcli/task_selector.go') diff --git a/internal/askcli/task_selector.go b/internal/askcli/task_selector.go index ccae234..220aa7c 100644 --- a/internal/askcli/task_selector.go +++ b/internal/askcli/task_selector.go @@ -117,3 +117,38 @@ func looksLikeTaskAlias(selector string) bool { _, ok := decodeTaskAliasID(selector) return ok && !strings.Contains(selector, "-") } + +func displayResolvedTaskID(resolved resolvedTaskSelector) string { + return displayTaskAlias(resolved.UUID, map[string]string{resolved.UUID: resolved.Alias}) +} + +func displayTaskAlias(uuid string, aliases map[string]string) string { + if alias := strings.TrimSpace(aliases[uuid]); alias != "" { + return alias + } + return uuid +} + +// NormalizeUUID strips any leading "uuid:" prefix so callers can accept +// both "uuid:" and bare UUID strings interchangeably. The returned +// value is always a plain UUID ready to be prefixed again when building +// taskwarrior filter arguments. +func NormalizeUUID(s string) string { + return strings.TrimPrefix(s, "uuid:") +} + +func IsNumericID(s string) bool { + if s == "" { + return false + } + for _, c := range s { + if c < '0' || c > '9' { + return false + } + } + return true +} + +func RejectNumericID() string { + return "error: use a task alias ID or UUID, not a numeric Taskwarrior task ID\n" +} -- cgit v1.2.3