fix(install): simplify sysupgrade

This commit is contained in:
jguer 2021-03-14 22:41:32 +01:00 committed by J Guerreiro
parent ece81fa078
commit 7a280e0199
2 changed files with 30 additions and 32 deletions

View file

@ -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 {

View file

@ -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
}