From f3c3e2e4d402c6414668289a1c4d7c3c96384239 Mon Sep 17 00:00:00 2001 From: jguer Date: Mon, 11 Oct 2021 00:18:57 +0200 Subject: [PATCH] fix(clean_menu): optimize any base installed --- clean_menu.go | 6 +----- install.go | 13 ++----------- pkg/dep/base.go | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/clean_menu.go b/clean_menu.go index e0ec5a8f..e027313d 100644 --- a/clean_menu.go +++ b/clean_menu.go @@ -36,11 +36,7 @@ func cleanNumberMenu(bases []dep.Base, installed stringset.StringSet) ([]dep.Bas if !cOtherInclude.Get("n") && !cOtherInclude.Get("none") { for i, base := range bases { pkg := base.Pkgbase() - anyInstalled := false - - for _, b := range base { - anyInstalled = anyInstalled || installed.Get(b.Name) - } + anyInstalled := base.AnyIsInSet(installed) dir := filepath.Join(config.BuildDir, pkg) if _, err := os.Stat(dir); os.IsNotExist(err) { diff --git a/install.go b/install.go index 40237c35..441a75b0 100644 --- a/install.go +++ b/install.go @@ -564,12 +564,7 @@ func pkgbuildNumberMenu(bases []dep.Base, installed stringset.StringSet) { toPrint += fmt.Sprintf(text.Magenta("%3d")+" %-40s", len(bases)-n, text.Bold(base.String())) - anyInstalled := false - for _, b := range base { - anyInstalled = anyInstalled || installed.Get(b.Name) - } - - if anyInstalled { + if base.AnyIsInSet(installed) { toPrint += text.Bold(text.Green(gotext.Get(" (Installed)"))) } @@ -625,11 +620,7 @@ func editDiffNumberMenu(bases []dep.Base, installed stringset.StringSet, diff bo if !eOtherInclude.Get("n") && !eOtherInclude.Get("none") { for i, base := range bases { pkg := base.Pkgbase() - anyInstalled := false - - for _, b := range base { - anyInstalled = anyInstalled || installed.Get(b.Name) - } + anyInstalled := base.AnyIsInSet(installed) if !eIsInclude && eExclude.Get(len(bases)-i) { continue diff --git a/pkg/dep/base.go b/pkg/dep/base.go index 315ea87c..5bdbdd81 100644 --- a/pkg/dep/base.go +++ b/pkg/dep/base.go @@ -1,6 +1,9 @@ package dep -import aur "github.com/Jguer/yay/v11/pkg/query" +import ( + aur "github.com/Jguer/yay/v11/pkg/query" + "github.com/Jguer/yay/v11/pkg/stringset" +) // Base is an AUR base package. type Base []*aur.Pkg @@ -20,6 +23,16 @@ func (b Base) URLPath() string { return b[0].URLPath } +func (b Base) AnyIsInSet(set stringset.StringSet) bool { + for _, pkg := range b { + if set.Get(pkg.Name) { + return true + } + } + + return false +} + // Packages foo and bar from a pkgbase named base would print like so: // base (foo bar). func (b Base) String() string {