fix(del): don't fail to delete if a single glob doesn't match; only if no patterns match at all
This commit is contained in:
parent
95c9ac8fca
commit
9869b663e2
1 changed files with 7 additions and 5 deletions
12
cmd/del.go
12
cmd/del.go
|
|
@ -153,6 +153,7 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin
|
||||||
var targetKeys []string
|
var targetKeys []string
|
||||||
var deleteTargets []string
|
var deleteTargets []string
|
||||||
|
|
||||||
|
var matched bool
|
||||||
for _, arg := range exactArgs {
|
for _, arg := range exactArgs {
|
||||||
exists, err := keyExists(store, arg)
|
exists, err := keyExists(store, arg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -169,6 +170,7 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin
|
||||||
targetSet[arg] = struct{}{}
|
targetSet[arg] = struct{}{}
|
||||||
targetKeys = append(targetKeys, formatted)
|
targetKeys = append(targetKeys, formatted)
|
||||||
deleteTargets = append(deleteTargets, arg)
|
deleteTargets = append(deleteTargets, arg)
|
||||||
|
matched = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -218,10 +220,8 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, fmt.Errorf("cannot remove '%s': %v", p.rawArg, err)
|
return nil, nil, fmt.Errorf("cannot remove '%s': %v", p.rawArg, err)
|
||||||
}
|
}
|
||||||
var matched bool
|
|
||||||
for _, k := range keys {
|
for _, k := range keys {
|
||||||
if p.matcher.Match(k) {
|
if p.matcher.Match(k) {
|
||||||
matched = true
|
|
||||||
full := fmt.Sprintf("%s@%s", k, p.db)
|
full := fmt.Sprintf("%s@%s", k, p.db)
|
||||||
if _, seen := targetSet[full]; seen {
|
if _, seen := targetSet[full]; seen {
|
||||||
continue
|
continue
|
||||||
|
|
@ -233,11 +233,13 @@ func resolveDeleteTargets(store *Store, exactArgs []string, globPatterns []strin
|
||||||
}
|
}
|
||||||
targetKeys = append(targetKeys, display)
|
targetKeys = append(targetKeys, display)
|
||||||
deleteTargets = append(deleteTargets, full)
|
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
|
return targetKeys, deleteTargets, nil
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue