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