Merge pull request #315 from Morganamilo/fix#314

Try each search term against RPC if one fails
This commit is contained in:
Morgana 2018-04-02 15:31:06 +01:00 committed by GitHub
commit 13ba261977
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 3 deletions

2
cmd.go
View File

@ -362,7 +362,7 @@ func handleRemove() (err error) {
func numberMenu(pkgS []string, flags []string) (err error) {
aurQ, err := narrowSearch(pkgS, true)
if err != nil {
fmt.Println("Error during AUR search:", err)
return fmt.Errorf("Error during AUR search: %s", err)
}
numaq := len(aurQ)
repoQ, numpq, err := queryRepo(pkgS)

View File

@ -72,11 +72,22 @@ func filterPackages() (local []alpm.Package, remote []alpm.Package,
// NarrowSearch searches AUR and narrows based on subarguments
func narrowSearch(pkgS []string, sortS bool) (aurQuery, error) {
var r []rpc.Pkg
var err error
var usedIndex int
if len(pkgS) == 0 {
return nil, nil
}
r, err := rpc.Search(pkgS[0])
for i, word := range pkgS {
r, err = rpc.Search(word)
if err == nil {
usedIndex = i
break
}
}
if err != nil {
return nil, err
}
@ -93,7 +104,11 @@ func narrowSearch(pkgS []string, sortS bool) (aurQuery, error) {
for _, res := range r {
match := true
for _, pkgN := range pkgS[1:] {
for i, pkgN := range pkgS {
if usedIndex == i {
continue
}
if !(strings.Contains(res.Name, pkgN) || strings.Contains(strings.ToLower(res.Description), pkgN)) {
match = false
break