From 2ed099a263b5d0b260e9dcc37aa249a4c21d9394 Mon Sep 17 00:00:00 2001 From: jguer Date: Mon, 2 Aug 2021 20:48:21 +0200 Subject: [PATCH] chore(download): unify filtering logic between commands --- pkg/download/unified.go | 76 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/pkg/download/unified.go b/pkg/download/unified.go index 22aec937..56be3280 100644 --- a/pkg/download/unified.go +++ b/pkg/download/unified.go @@ -83,19 +83,9 @@ func GetPkgbuilds(dbExecutor DBSearcher, httpClient *http.Client, targets []stri sem := make(chan uint8, MaxConcurrentFetch) for _, target := range targets { - aur := true - - dbName, name := text.SplitDBFromName(target) - if dbName != "aur" && (mode == settings.ModeAny || mode == settings.ModeRepo) { - if pkg := dbExecutor.SyncPackage(name); pkg != nil { - aur = false - name = getURLName(pkg) - dbName = pkg.DB().Name() - } - } - - if aur && mode == settings.ModeRepo { - // Mode does not allow AUR packages + // Probably replaceable by something in query. + dbName, name, aur, toSkip := getPackageUsableName(dbExecutor, target, mode) + if toSkip { continue } @@ -148,31 +138,9 @@ func PKGBUILDRepos(dbExecutor DBSearcher, sem := make(chan uint8, MaxConcurrentFetch) for _, target := range targets { - aur := true - - dbName, name := text.SplitDBFromName(target) - if dbName != "aur" && (mode == settings.ModeAny || mode == settings.ModeRepo) { - var pkg alpm.IPackage - if dbName != "" { - pkg = dbExecutor.SatisfierFromDB(name, dbName) - if pkg == nil { - // if the user precised a db but the package is not in the db - // then it is missing - continue - } - } else { - pkg = dbExecutor.SyncPackage(name) - } - - if pkg != nil { - aur = false - name = getURLName(pkg) - dbName = pkg.DB().Name() - } - } - - if aur && mode == settings.ModeRepo { - // Mode does not allow AUR packages + // Probably replaceable by something in query. + dbName, name, aur, toSkip := getPackageUsableName(dbExecutor, target, mode) + if toSkip { continue } @@ -220,3 +188,35 @@ func PKGBUILDRepos(dbExecutor DBSearcher, return cloned, errs.Return() } + +func getPackageUsableName(dbExecutor DBSearcher, target string, mode settings.TargetMode) (dbname, pkgname string, aur, toSkip bool) { + aur = true + + dbName, name := text.SplitDBFromName(target) + if dbName != "aur" && (mode == settings.ModeAny || mode == settings.ModeRepo) { + var pkg alpm.IPackage + if dbName != "" { + pkg = dbExecutor.SatisfierFromDB(name, dbName) + if pkg == nil { + // if the user precised a db but the package is not in the db + // then it is missing + // Mode does not allow AUR packages + + return dbName, name, aur, true + } + } else { + pkg = dbExecutor.SyncPackage(name) + } + + if pkg != nil { + aur = false + name = getURLName(pkg) + dbName = pkg.DB().Name() + } + } + + if aur && mode == settings.ModeRepo { + return dbName, name, aur, true + } + return dbName, name, aur, false +}