From 9869b663e2d1c5d4d877443163f5cb306a28f1df Mon Sep 17 00:00:00 2001 From: lew Date: Wed, 17 Dec 2025 19:57:33 +0000 Subject: [PATCH] fix(del): don't fail to delete if a single glob doesn't match; only if no patterns match at all --- cmd/del.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/del.go b/cmd/del.go index da48261..844352a 100644 --- a/cmd/del.go +++ b/cmd/del.go @@ -153,6 +153,7 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin var targetKeys []string var deleteTargets []string + var matched bool for _, arg := range exactArgs { exists, err := keyExists(store, arg) if err != nil { @@ -169,6 +170,7 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin targetSet[arg] = struct{}{} targetKeys = append(targetKeys, formatted) deleteTargets = append(deleteTargets, arg) + matched = true } } @@ -218,10 +220,8 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin if err != nil { return nil, nil, fmt.Errorf("cannot remove '%s': %v", p.rawArg, err) } - var matched bool for _, k := range keys { if p.matcher.Match(k) { - matched = true full := fmt.Sprintf("%s@%s", k, p.db) if _, seen := targetSet[full]; seen { continue @@ -233,11 +233,13 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin } targetKeys = append(targetKeys, display) deleteTargets = append(deleteTargets, full) + matched = true } } - if !matched { - return nil, nil, fmt.Errorf("cannot remove '%s': No matches for pattern", p.rawArg) - } + } + + if len(globPatterns) > 0 && !matched { + return nil, nil, fmt.Errorf("cannot remove '%s': No matches for pattern", globPatterns[0]) } return targetKeys, deleteTargets, nil