summaryrefslogtreecommitdiff
path: root/internal/askcli/task_alias_cache.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/askcli/task_alias_cache.go')
-rw-r--r--internal/askcli/task_alias_cache.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/askcli/task_alias_cache.go b/internal/askcli/task_alias_cache.go
index a914e6b..c6a0ba2 100644
--- a/internal/askcli/task_alias_cache.go
+++ b/internal/askcli/task_alias_cache.go
@@ -168,6 +168,30 @@ func (c *taskAliasCache) ensureAlias(uuid string, now time.Time) (string, bool)
return alias, true
}
+func (c *taskAliasCache) lookupUUIDByAlias(alias string, now time.Time) (string, bool, bool) {
+ for i := range c.Entries {
+ if c.Entries[i].Alias != alias {
+ continue
+ }
+ changed := !c.Entries[i].LastAccessedAt.Equal(now)
+ c.Entries[i].LastAccessedAt = now
+ return c.Entries[i].UUID, true, changed
+ }
+ return "", false, false
+}
+
+func (c *taskAliasCache) lookupAliasByUUID(uuid string, now time.Time) (string, bool, bool) {
+ for i := range c.Entries {
+ if c.Entries[i].UUID != uuid {
+ continue
+ }
+ changed := !c.Entries[i].LastAccessedAt.Equal(now)
+ c.Entries[i].LastAccessedAt = now
+ return c.Entries[i].Alias, true, changed
+ }
+ return "", false, false
+}
+
func (c taskAliasCache) save(path string) error {
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
return fmt.Errorf("create task alias cache dir: %w", err)