refactor(parser): unify atleast modes

This commit is contained in:
jguer 2021-08-09 13:26:32 +02:00 committed by J Guerreiro
parent 5c11c01d85
commit f42cbde6db
9 changed files with 34 additions and 26 deletions

View File

@ -56,14 +56,14 @@ func syncClean(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
} }
} }
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd( if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
cmdArgs, config.Runtime.Mode, settings.NoConfirm)); err != nil { cmdArgs, config.Runtime.Mode, settings.NoConfirm)); err != nil {
return err return err
} }
} }
if !(config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny) { if !config.Runtime.Mode.AtLeastAUR() {
return nil return nil
} }

18
cmd.go
View File

@ -354,11 +354,11 @@ func displayNumberMenu(pkgS []string, dbExecutor db.Executor, cmdArgs *parser.Ar
pkgS = query.RemoveInvalidTargets(pkgS, config.Runtime.Mode) pkgS = query.RemoveInvalidTargets(pkgS, config.Runtime.Mode)
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq, aurErr = narrowSearch(config.Runtime.AURClient, pkgS, true) aq, aurErr = narrowSearch(config.Runtime.AURClient, pkgS, true)
lenaq = len(aq) lenaq = len(aq)
} }
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq = queryRepo(pkgS, dbExecutor) pq = queryRepo(pkgS, dbExecutor)
lenpq = len(pq) lenpq = len(pq)
if repoErr != nil { if repoErr != nil {
@ -372,17 +372,17 @@ func displayNumberMenu(pkgS []string, dbExecutor db.Executor, cmdArgs *parser.Ar
switch config.SortMode { switch config.SortMode {
case settings.TopDown: case settings.TopDown:
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq.printSearch(dbExecutor) pq.printSearch(dbExecutor)
} }
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq.printSearch(lenpq+1, dbExecutor) aq.printSearch(lenpq+1, dbExecutor)
} }
case settings.BottomUp: case settings.BottomUp:
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq.printSearch(lenpq+1, dbExecutor) aq.printSearch(lenpq+1, dbExecutor)
} }
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq.printSearch(dbExecutor) pq.printSearch(dbExecutor)
} }
default: default:
@ -457,13 +457,13 @@ func syncList(httpClient *http.Client, cmdArgs *parser.Arguments, dbExecutor db.
aur := false aur := false
for i := len(cmdArgs.Targets) - 1; i >= 0; i-- { for i := len(cmdArgs.Targets) - 1; i >= 0; i-- {
if cmdArgs.Targets[i] == "aur" && (config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeAUR) { if cmdArgs.Targets[i] == "aur" && config.Runtime.Mode.AtLeastAUR() {
cmdArgs.Targets = append(cmdArgs.Targets[:i], cmdArgs.Targets[i+1:]...) cmdArgs.Targets = append(cmdArgs.Targets[:i], cmdArgs.Targets[i+1:]...)
aur = true aur = true
} }
} }
if (config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeAUR) && (len(cmdArgs.Targets) == 0 || aur) { if config.Runtime.Mode.AtLeastAUR() && (len(cmdArgs.Targets) == 0 || aur) {
req, err := http.NewRequestWithContext(context.Background(), "GET", config.AURURL+"/packages.gz", nil) req, err := http.NewRequestWithContext(context.Background(), "GET", config.AURURL+"/packages.gz", nil)
if err != nil { if err != nil {
return err return err
@ -494,7 +494,7 @@ func syncList(httpClient *http.Client, cmdArgs *parser.Arguments, dbExecutor db.
} }
} }
if (config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeRepo) && (len(cmdArgs.Targets) != 0 || !aur) { if config.Runtime.Mode.AtLeastRepo() && (len(cmdArgs.Targets) != 0 || !aur) {
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd( return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
cmdArgs, config.Runtime.Mode, settings.NoConfirm)) cmdArgs, config.Runtime.Mode, settings.NoConfirm))
} }

View File

@ -82,7 +82,7 @@ func install(cmdArgs *parser.Arguments, dbExecutor db.Executor, ignoreProviders
config.Runtime.CmdBuilder.AddMakepkgFlag("-d") config.Runtime.CmdBuilder.AddMakepkgFlag("-d")
} }
if config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeRepo { if config.Runtime.Mode.AtLeastRepo() {
if config.CombinedUpgrade { if config.CombinedUpgrade {
if refreshArg { if refreshArg {
err = earlyRefresh(cmdArgs) err = earlyRefresh(cmdArgs)
@ -196,7 +196,8 @@ func install(cmdArgs *parser.Arguments, dbExecutor db.Executor, ignoreProviders
arguments.AddTarget(pkg) arguments.AddTarget(pkg)
} }
if len(do.Aur) == 0 && len(arguments.Targets) == 0 && (!cmdArgs.ExistsArg("u", "sysupgrade") || config.Runtime.Mode == parser.ModeAUR) { if len(do.Aur) == 0 && len(arguments.Targets) == 0 &&
(!cmdArgs.ExistsArg("u", "sysupgrade") || config.Runtime.Mode == parser.ModeAUR) {
fmt.Println(gotext.Get(" there is nothing to do")) fmt.Println(gotext.Get(" there is nothing to do"))
return nil return nil
} }

View File

@ -151,7 +151,7 @@ func (dp *Pool) ResolveTargets(pkgs []string,
dp.Targets = append(dp.Targets, target) dp.Targets = append(dp.Targets, target)
} }
if len(aurTargets) > 0 && (mode == parser.ModeAny || mode == parser.ModeAUR) { if len(aurTargets) > 0 && mode.AtLeastAUR() {
return dp.resolveAURPackages(aurTargets, true, ignoreProviders, noConfirm, provides, rebuild, splitN, noDeps, noCheckDeps) return dp.resolveAURPackages(aurTargets, true, ignoreProviders, noConfirm, provides, rebuild, splitN, noDeps, noCheckDeps)
} }

View File

@ -193,7 +193,7 @@ func getPackageUsableName(dbExecutor DBSearcher, target string, mode parser.Targ
aur = true aur = true
dbName, name := text.SplitDBFromName(target) dbName, name := text.SplitDBFromName(target)
if dbName != "aur" && (mode == parser.ModeAny || mode == parser.ModeRepo) { if dbName != "aur" && mode.AtLeastRepo() {
var pkg alpm.IPackage var pkg alpm.IPackage
if dbName != "" { if dbName != "" {
pkg = dbExecutor.SatisfierFromDB(name, dbName) pkg = dbExecutor.SatisfierFromDB(name, dbName)

View File

@ -41,12 +41,12 @@ func RemoveInvalidTargets(targets []string, mode parser.TargetMode) []string {
for _, target := range targets { for _, target := range targets {
dbName, _ := text.SplitDBFromName(target) dbName, _ := text.SplitDBFromName(target)
if dbName == "aur" && mode == parser.ModeRepo { if dbName == "aur" && !mode.AtLeastAUR() {
text.Warnln(gotext.Get("%s: can't use target with option --repo -- skipping", text.Cyan(target))) text.Warnln(gotext.Get("%s: can't use target with option --repo -- skipping", text.Cyan(target)))
continue continue
} }
if dbName != "aur" && dbName != "" && mode == parser.ModeAUR { if dbName != "aur" && dbName != "" && !mode.AtLeastRepo() {
text.Warnln(gotext.Get("%s: can't use target with option --aur -- skipping", text.Cyan(target))) text.Warnln(gotext.Get("%s: can't use target with option --aur -- skipping", text.Cyan(target)))
continue continue
} }

View File

@ -7,3 +7,11 @@ const (
ModeAUR ModeAUR
ModeRepo ModeRepo
) )
func (mode TargetMode) AtLeastAUR() bool {
return mode == ModeAny || mode == ModeAUR
}
func (mode TargetMode) AtLeastRepo() bool {
return mode == ModeAny || mode == ModeRepo
}

View File

@ -155,26 +155,26 @@ func syncSearch(pkgS []string, aurClient *aur.Client, dbExecutor db.Executor) (e
var aq aurQuery var aq aurQuery
var pq repoQuery var pq repoQuery
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq, aurErr = narrowSearch(aurClient, pkgS, true) aq, aurErr = narrowSearch(aurClient, pkgS, true)
} }
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq = queryRepo(pkgS, dbExecutor) pq = queryRepo(pkgS, dbExecutor)
} }
switch config.SortMode { switch config.SortMode {
case settings.TopDown: case settings.TopDown:
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq.printSearch(dbExecutor) pq.printSearch(dbExecutor)
} }
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq.printSearch(1, dbExecutor) aq.printSearch(1, dbExecutor)
} }
case settings.BottomUp: case settings.BottomUp:
if config.Runtime.Mode == parser.ModeAUR || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastAUR() {
aq.printSearch(1, dbExecutor) aq.printSearch(1, dbExecutor)
} }
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny { if config.Runtime.Mode.AtLeastRepo() {
pq.printSearch(dbExecutor) pq.printSearch(dbExecutor)
} }
default: default:

View File

@ -14,7 +14,6 @@ import (
"github.com/Jguer/yay/v10/pkg/intrange" "github.com/Jguer/yay/v10/pkg/intrange"
"github.com/Jguer/yay/v10/pkg/multierror" "github.com/Jguer/yay/v10/pkg/multierror"
"github.com/Jguer/yay/v10/pkg/query" "github.com/Jguer/yay/v10/pkg/query"
"github.com/Jguer/yay/v10/pkg/settings/parser"
"github.com/Jguer/yay/v10/pkg/stringset" "github.com/Jguer/yay/v10/pkg/stringset"
"github.com/Jguer/yay/v10/pkg/text" "github.com/Jguer/yay/v10/pkg/text"
"github.com/Jguer/yay/v10/pkg/upgrade" "github.com/Jguer/yay/v10/pkg/upgrade"
@ -48,7 +47,7 @@ func upList(warnings *query.AURWarnings, dbExecutor db.Executor, enableDowngrade
} }
} }
if config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeRepo { if config.Runtime.Mode.AtLeastRepo() {
text.OperationInfoln(gotext.Get("Searching databases for updates...")) text.OperationInfoln(gotext.Get("Searching databases for updates..."))
wg.Add(1) wg.Add(1)
go func() { go func() {
@ -58,7 +57,7 @@ func upList(warnings *query.AURWarnings, dbExecutor db.Executor, enableDowngrade
}() }()
} }
if config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeAUR { if config.Runtime.Mode.AtLeastAUR() {
text.OperationInfoln(gotext.Get("Searching AUR for updates...")) text.OperationInfoln(gotext.Get("Searching AUR for updates..."))
var _aurdata []*aur.Pkg var _aurdata []*aur.Pkg