From 346a579c2324277f8aae70ff1d72e5ebf8745e4b Mon Sep 17 00:00:00 2001 From: morganamilo Date: Sat, 17 Feb 2018 17:39:10 +0000 Subject: [PATCH] Add function to wrap rpc.Info with warnings Warns for orphans, out of date and missing Respects requestsplitn in config --- query.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/query.go b/query.go index ed0a30b6..4d1cc39f 100644 --- a/query.go +++ b/query.go @@ -380,3 +380,50 @@ big: } return } + +func min(a, b int) int { + if a < b { + return a + } + return a +} + +func aurInfo(names []string) ([]rpc.Pkg, error) { + info := make([]rpc.Pkg, 0, len(names)) + seen := make(map[string]int) + + for n := 0; n < len(names); n += config.RequestSplitN { + max := min(len(names), n + config.RequestSplitN) + tempInfo, err := rpc.Info(names[n:max]) + if err != nil { + return info, err + } + info = append(info, tempInfo...) + } + + for k, pkg := range info { + seen[pkg.Name] = k + } + + for _, name := range names { + i, ok := seen[name] + if !ok { + fmt.Println(boldRedFgBlackBg(arrow+"Warning:"), + boldYellowFgBlackBg(name), whiteFgBlackBg("is not available in AUR")) + continue + } + + pkg := info[i] + + if pkg.Maintainer == "" { + fmt.Println(boldRedFgBlackBg(arrow+"Warning:"), + boldYellowFgBlackBg(pkg.Name), whiteFgBlackBg("is orphaned")) + } + if pkg.OutOfDate != 0 { + fmt.Println(boldRedFgBlackBg(arrow+"Warning:"), + boldYellowFgBlackBg(pkg.Name), whiteFgBlackBg("is out-of-date in AUR")) + } + } + + return info, nil +}