mirror of
https://github.com/Jguer/yay
synced 2024-07-05 18:01:50 +00:00
fix(pkgbuild_download): remove alpmHandle
This commit is contained in:
parent
0e2a02b512
commit
6b973c6bc5
14
cmd.go
14
cmd.go
|
@ -168,7 +168,7 @@ func handleCmd(cmdArgs *settings.Arguments, alpmHandle *alpm.Handle, dbExecutor
|
|||
case "U", "upgrade":
|
||||
return show(passToPacman(cmdArgs))
|
||||
case "G", "getpkgbuild":
|
||||
return handleGetpkgbuild(cmdArgs, alpmHandle)
|
||||
return handleGetpkgbuild(cmdArgs, dbExecutor)
|
||||
case "P", "show":
|
||||
return handlePrint(cmdArgs, alpmHandle, dbExecutor)
|
||||
case "Y", "--yay":
|
||||
|
@ -260,8 +260,8 @@ func handleYay(cmdArgs *settings.Arguments, dbExecutor *db.AlpmExecutor) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func handleGetpkgbuild(cmdArgs *settings.Arguments, alpmHandle *alpm.Handle) error {
|
||||
return getPkgbuilds(cmdArgs.Targets, alpmHandle, cmdArgs.ExistsArg("f", "force"))
|
||||
func handleGetpkgbuild(cmdArgs *settings.Arguments, dbExecutor *db.AlpmExecutor) error {
|
||||
return getPkgbuilds(cmdArgs.Targets, dbExecutor, cmdArgs.ExistsArg("f", "force"))
|
||||
}
|
||||
|
||||
func handleYogurt(cmdArgs *settings.Arguments, dbExecutor *db.AlpmExecutor) error {
|
||||
|
@ -278,7 +278,7 @@ func handleSync(cmdArgs *settings.Arguments, alpmHandle *alpm.Handle, dbExecutor
|
|||
} else {
|
||||
config.SearchMode = detailed
|
||||
}
|
||||
return syncSearch(targets)
|
||||
return syncSearch(targets, dbExecutor)
|
||||
}
|
||||
if cmdArgs.ExistsArg("p", "print", "print-format") {
|
||||
return show(passToPacman(cmdArgs))
|
||||
|
@ -293,13 +293,13 @@ func handleSync(cmdArgs *settings.Arguments, alpmHandle *alpm.Handle, dbExecutor
|
|||
return show(passToPacman(cmdArgs))
|
||||
}
|
||||
if cmdArgs.ExistsArg("i", "info") {
|
||||
return syncInfo(cmdArgs, targets, alpmHandle)
|
||||
return syncInfo(cmdArgs, targets, dbExecutor)
|
||||
}
|
||||
if cmdArgs.ExistsArg("u", "sysupgrade") {
|
||||
return install(cmdArgs, config.Runtime.DBExecutor, false)
|
||||
return install(cmdArgs, dbExecutor, false)
|
||||
}
|
||||
if len(cmdArgs.Targets) > 0 {
|
||||
return install(cmdArgs, config.Runtime.DBExecutor, false)
|
||||
return install(cmdArgs, dbExecutor, false)
|
||||
}
|
||||
if cmdArgs.ExistsArg("y", "refresh") {
|
||||
return show(passToPacman(cmdArgs))
|
||||
|
|
31
download.go
31
download.go
|
@ -8,10 +8,10 @@ import (
|
|||
"strings"
|
||||
"sync"
|
||||
|
||||
alpm "github.com/Jguer/go-alpm"
|
||||
"github.com/leonelquinteros/gotext"
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/Jguer/yay/v10/pkg/db"
|
||||
"github.com/Jguer/yay/v10/pkg/dep"
|
||||
"github.com/Jguer/yay/v10/pkg/multierror"
|
||||
"github.com/Jguer/yay/v10/pkg/query"
|
||||
|
@ -140,7 +140,7 @@ func gitMerge(path, name string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func getPkgbuilds(pkgs []string, alpmHandle *alpm.Handle, force bool) error {
|
||||
func getPkgbuilds(pkgs []string, dbExecutor *db.AlpmExecutor, force bool) error {
|
||||
missing := false
|
||||
wd, err := os.Getwd()
|
||||
if err != nil {
|
||||
|
@ -148,10 +148,7 @@ func getPkgbuilds(pkgs []string, alpmHandle *alpm.Handle, force bool) error {
|
|||
}
|
||||
|
||||
pkgs = query.RemoveInvalidTargets(pkgs, config.Runtime.Mode)
|
||||
aur, repo, err := packageSlices(pkgs, alpmHandle)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
aur, repo := packageSlices(pkgs, dbExecutor)
|
||||
|
||||
for n := range aur {
|
||||
_, pkg := text.SplitDBFromName(aur[n])
|
||||
|
@ -164,7 +161,7 @@ func getPkgbuilds(pkgs []string, alpmHandle *alpm.Handle, force bool) error {
|
|||
}
|
||||
|
||||
if len(repo) > 0 {
|
||||
missing, err = getPkgbuildsfromABS(repo, wd, alpmHandle, force)
|
||||
missing, err = getPkgbuildsfromABS(repo, wd, dbExecutor, force)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -212,7 +209,7 @@ func getPkgbuilds(pkgs []string, alpmHandle *alpm.Handle, force bool) error {
|
|||
}
|
||||
|
||||
// GetPkgbuild downloads pkgbuild from the ABS.
|
||||
func getPkgbuildsfromABS(pkgs []string, path string, alpmHandle *alpm.Handle, force bool) (bool, error) {
|
||||
func getPkgbuildsfromABS(pkgs []string, path string, dbExecutor *db.AlpmExecutor, force bool) (bool, error) {
|
||||
var wg sync.WaitGroup
|
||||
var mux sync.Mutex
|
||||
var errs multierror.MultiError
|
||||
|
@ -220,28 +217,16 @@ func getPkgbuildsfromABS(pkgs []string, path string, alpmHandle *alpm.Handle, fo
|
|||
missing := make([]string, 0)
|
||||
downloaded := 0
|
||||
|
||||
dbList, err := alpmHandle.SyncDBs()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
for _, pkgN := range pkgs {
|
||||
var pkg *alpm.Package
|
||||
var pkg db.RepoPackage
|
||||
var err error
|
||||
var url string
|
||||
pkgDB, name := text.SplitDBFromName(pkgN)
|
||||
|
||||
if pkgDB != "" {
|
||||
if db, errSync := alpmHandle.SyncDBByName(pkgDB); errSync == nil {
|
||||
pkg = db.Pkg(name)
|
||||
}
|
||||
pkg = dbExecutor.PackageFromDB(name, pkgDB)
|
||||
} else {
|
||||
_ = dbList.ForEach(func(db alpm.DB) error {
|
||||
if pkg = db.Pkg(name); pkg != nil {
|
||||
return fmt.Errorf("")
|
||||
}
|
||||
return nil
|
||||
})
|
||||
pkg = dbExecutor.SyncSatisfier(name)
|
||||
}
|
||||
|
||||
if pkg == nil {
|
||||
|
|
|
@ -240,7 +240,11 @@ func (ae *AlpmExecutor) SyncPackages(pkgNames ...string) []RepoPackage {
|
|||
}
|
||||
|
||||
func (ae *AlpmExecutor) LocalPackage(pkgName string) RepoPackage {
|
||||
return ae.localDB.Pkg(pkgName)
|
||||
pkg := ae.localDB.Pkg(pkgName)
|
||||
if pkg == nil {
|
||||
return nil
|
||||
}
|
||||
return pkg
|
||||
}
|
||||
|
||||
func (ae *AlpmExecutor) PackageFromDB(pkgName, dbName string) RepoPackage {
|
||||
|
|
39
query.go
39
query.go
|
@ -147,7 +147,7 @@ func narrowSearch(pkgS []string, sortS bool) (aurQuery, error) {
|
|||
}
|
||||
|
||||
// SyncSearch presents a query to the local repos and to the AUR.
|
||||
func syncSearch(pkgS []string) (err error) {
|
||||
func syncSearch(pkgS []string, dbExecutor *db.AlpmExecutor) (err error) {
|
||||
pkgS = query.RemoveInvalidTargets(pkgS, config.Runtime.Mode)
|
||||
var aurErr error
|
||||
var aq aurQuery
|
||||
|
@ -157,23 +157,23 @@ func syncSearch(pkgS []string) (err error) {
|
|||
aq, aurErr = narrowSearch(pkgS, true)
|
||||
}
|
||||
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
|
||||
pq = queryRepo(pkgS, config.Runtime.DBExecutor)
|
||||
pq = queryRepo(pkgS, dbExecutor)
|
||||
}
|
||||
|
||||
switch config.SortMode {
|
||||
case settings.TopDown:
|
||||
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
|
||||
pq.printSearch(config.Runtime.DBExecutor)
|
||||
pq.printSearch(dbExecutor)
|
||||
}
|
||||
if config.Runtime.Mode == settings.ModeAUR || config.Runtime.Mode == settings.ModeAny {
|
||||
aq.printSearch(1, config.Runtime.DBExecutor)
|
||||
aq.printSearch(1, dbExecutor)
|
||||
}
|
||||
case settings.BottomUp:
|
||||
if config.Runtime.Mode == settings.ModeAUR || config.Runtime.Mode == settings.ModeAny {
|
||||
aq.printSearch(1, config.Runtime.DBExecutor)
|
||||
aq.printSearch(1, dbExecutor)
|
||||
}
|
||||
if config.Runtime.Mode == settings.ModeRepo || config.Runtime.Mode == settings.ModeAny {
|
||||
pq.printSearch(config.Runtime.DBExecutor)
|
||||
pq.printSearch(dbExecutor)
|
||||
}
|
||||
default:
|
||||
return errors.New(gotext.Get("invalid sort mode. Fix with yay -Y --bottomup --save"))
|
||||
|
@ -188,14 +188,12 @@ func syncSearch(pkgS []string) (err error) {
|
|||
}
|
||||
|
||||
// SyncInfo serves as a pacman -Si for repo packages and AUR packages.
|
||||
func syncInfo(cmdArgs *settings.Arguments, pkgS []string, alpmHandle *alpm.Handle) error {
|
||||
func syncInfo(cmdArgs *settings.Arguments, pkgS []string, dbExecutor *db.AlpmExecutor) error {
|
||||
var info []*rpc.Pkg
|
||||
var err error
|
||||
missing := false
|
||||
pkgS = query.RemoveInvalidTargets(pkgS, config.Runtime.Mode)
|
||||
aurS, repoS, err := packageSlices(pkgS, alpmHandle)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
aurS, repoS := packageSlices(pkgS, dbExecutor)
|
||||
|
||||
if len(aurS) != 0 {
|
||||
noDB := make([]string, 0, len(aurS))
|
||||
|
@ -252,12 +250,7 @@ func queryRepo(pkgInputN []string, dbExecutor *db.AlpmExecutor) repoQuery {
|
|||
}
|
||||
|
||||
// PackageSlices separates an input slice into aur and repo slices
|
||||
func packageSlices(toCheck []string, alpmHandle *alpm.Handle) (aur, repo []string, err error) {
|
||||
dbList, err := alpmHandle.SyncDBs()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
func packageSlices(toCheck []string, dbExecutor *db.AlpmExecutor) (aur, repo []string) {
|
||||
for _, _pkg := range toCheck {
|
||||
dbName, name := text.SplitDBFromName(_pkg)
|
||||
found := false
|
||||
|
@ -270,16 +263,10 @@ func packageSlices(toCheck []string, alpmHandle *alpm.Handle) (aur, repo []strin
|
|||
continue
|
||||
}
|
||||
|
||||
_ = dbList.ForEach(func(db alpm.DB) error {
|
||||
if db.Pkg(name) != nil {
|
||||
found = true
|
||||
return fmt.Errorf("")
|
||||
}
|
||||
return nil
|
||||
})
|
||||
found = dbExecutor.SyncSatisfierExists(name)
|
||||
|
||||
if !found {
|
||||
found = !dbList.FindGroupPkgs(name).Empty()
|
||||
found = len(dbExecutor.PackagesFromGroup(name)) != 0
|
||||
}
|
||||
|
||||
if found {
|
||||
|
@ -289,7 +276,7 @@ func packageSlices(toCheck []string, alpmHandle *alpm.Handle) (aur, repo []strin
|
|||
}
|
||||
}
|
||||
|
||||
return aur, repo, nil
|
||||
return aur, repo
|
||||
}
|
||||
|
||||
// HangingPackages returns a list of packages installed as deps
|
||||
|
|
Loading…
Reference in New Issue
Block a user