From 7a280e0199e30225df9d40ed8d1d17c6dd3876c7 Mon Sep 17 00:00:00 2001 From: jguer Date: Sun, 14 Mar 2021 22:41:32 +0100 Subject: [PATCH] fix(install): simplify sysupgrade --- install.go | 26 ++++---------------------- upgrade.go | 36 ++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/install.go b/install.go index 7eac7a56..b3094153 100644 --- a/install.go +++ b/install.go @@ -24,7 +24,6 @@ import ( "github.com/Jguer/yay/v10/pkg/settings" "github.com/Jguer/yay/v10/pkg/stringset" "github.com/Jguer/yay/v10/pkg/text" - "github.com/Jguer/yay/v10/pkg/upgrade" ) const gitEmptyTree = "4b825dc642cb6eb9a060e54bf8d69288fbee4904" @@ -66,9 +65,6 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider var incompatible stringset.StringSet var do *dep.Order - var aurUp upgrade.UpSlice - var repoUp upgrade.UpSlice - var srcinfos map[string]*gosrc.Srcinfo warnings := query.NewWarnings() @@ -119,28 +115,14 @@ func install(cmdArgs *settings.Arguments, dbExecutor db.Executor, ignoreProvider // if we are doing -u also request all packages needing update if cmdArgs.ExistsArg("u", "sysupgrade") { - aurUp, repoUp, err = upList(warnings, dbExecutor, cmdArgs.ExistsDouble("u", "sysupgrade"), func(upgrade.Upgrade) bool { return true }) - if err != nil { - return err - } - - warnings.Print() - - ignore, aurUp, errUp := upgradePkgs(aurUp, repoUp) + ignore, targets, errUp := sysupgradeTargets(dbExecutor, cmdArgs.ExistsDouble("u", "sysupgrade")) if errUp != nil { return errUp } - for _, up := range repoUp { - if !ignore.Get(up.Name) { - requestTargets = append(requestTargets, up.Name) - cmdArgs.AddTarget(up.Name) - } - } - - for up := range aurUp { - requestTargets = append(requestTargets, "aur/"+up) - cmdArgs.AddTarget("aur/" + up) + for _, up := range targets { + cmdArgs.AddTarget(up) + requestTargets = append(requestTargets, up) } if len(ignore) > 0 { diff --git a/upgrade.go b/upgrade.go index 39b52564..1305910a 100644 --- a/upgrade.go +++ b/upgrade.go @@ -139,22 +139,22 @@ func isDevelPackage(pkg alpm.IPackage) bool { return isDevelName(pkg.Name()) || isDevelName(pkg.Base()) } -// upgradePkgs handles updating the cache and installing updates. -func upgradePkgs(aurUp, repoUp upgrade.UpSlice) (ignore, aurNames stringset.StringSet, err error) { - ignore = make(stringset.StringSet) - aurNames = make(stringset.StringSet) +// upgradePkgsMenu handles updating the cache and installing updates. +func upgradePkgsMenu(aurUp, repoUp upgrade.UpSlice) (stringset.StringSet, []string, error) { + ignore := make(stringset.StringSet) + targets := []string{} allUpLen := len(repoUp) + len(aurUp) if allUpLen == 0 { - return ignore, aurNames, nil + return ignore, nil, nil } if !config.UpgradeMenu { for _, pkg := range aurUp { - aurNames.Set(pkg.Name) + targets = append(targets, pkg.Name) } - return ignore, aurNames, nil + return ignore, targets, nil } sort.Sort(repoUp) @@ -182,10 +182,12 @@ func upgradePkgs(aurUp, repoUp upgrade.UpSlice) (ignore, aurNames stringset.Stri } if isInclude && !include.Get(len(repoUp)-i+len(aurUp)) { + targets = append(targets, pkg.Name) continue } if !isInclude && (exclude.Get(len(repoUp)-i+len(aurUp)) || otherExclude.Get(pkg.Repository)) { + targets = append(targets, pkg.Name) continue } @@ -198,13 +200,27 @@ func upgradePkgs(aurUp, repoUp upgrade.UpSlice) (ignore, aurNames stringset.Stri } if isInclude && !include.Get(len(aurUp)-i) { - aurNames.Set(pkg.Name) + targets = append(targets, "aur/"+pkg.Name) } if !isInclude && (exclude.Get(len(aurUp)-i) || otherExclude.Get(pkg.Repository)) { - aurNames.Set(pkg.Name) + targets = append(targets, "aur/"+pkg.Name) } } - return ignore, aurNames, err + return ignore, targets, err +} + +// Targets for sys upgrade +func sysupgradeTargets(dbExecutor db.Executor, enableDowngrade bool) (stringset.StringSet, []string, error) { + warnings := query.NewWarnings() + aurUp, repoUp, err := upList(warnings, dbExecutor, enableDowngrade, func(upgrade.Upgrade) bool { return true }) + if err != nil { + return nil, nil, err + } + + warnings.Print() + + ignore, targets, errUp := upgradePkgsMenu(aurUp, repoUp) + return ignore, targets, errUp }