mirror of
https://github.com/Jguer/yay
synced 2024-10-02 22:33:47 +00:00
fix(pkgbuild): rebase pkgbuild fetching from nycex
This commit is contained in:
parent
d9b440c929
commit
a288dd754f
4
cmd.go
4
cmd.go
|
@ -217,8 +217,8 @@ func handlePrint(cmdArgs *settings.Arguments, dbExecutor db.Executor) (err error
|
|||
err = completion.Show(dbExecutor, config.AURURL, config.Runtime.CompletionPath, config.CompletionInterval, false)
|
||||
case cmdArgs.ExistsArg("s", "stats"):
|
||||
err = localStatistics(dbExecutor)
|
||||
case cmdArgs.existsArg("p", "pkgbuild"):
|
||||
err = printPkgbuilds(cmdArgs.targets)
|
||||
case cmdArgs.ExistsArg("p", "pkgbuild"):
|
||||
err = printPkgbuilds(dbExecutor, cmdArgs.Targets)
|
||||
default:
|
||||
err = nil
|
||||
}
|
||||
|
|
44
print.go
44
print.go
|
@ -9,6 +9,7 @@ import (
|
|||
rpc "github.com/mikkeloscar/aur"
|
||||
|
||||
"github.com/Jguer/yay/v10/pkg/db"
|
||||
"github.com/Jguer/yay/v10/pkg/multierror"
|
||||
"github.com/Jguer/yay/v10/pkg/query"
|
||||
"github.com/Jguer/yay/v10/pkg/settings"
|
||||
"github.com/Jguer/yay/v10/pkg/stringset"
|
||||
|
@ -266,3 +267,46 @@ outer:
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func printPkgbuilds(dbExecutor db.Executor, pkgS []string) error {
|
||||
var pkgbuilds []string
|
||||
var localPkgbuilds []string
|
||||
missing := false
|
||||
pkgS = query.RemoveInvalidTargets(pkgS, config.Runtime.Mode)
|
||||
aurS, repoS := packageSlices(pkgS, dbExecutor)
|
||||
var err error
|
||||
var errs multierror.MultiError
|
||||
|
||||
if len(aurS) != 0 {
|
||||
noDB := make([]string, 0, len(aurS))
|
||||
for _, pkg := range aurS {
|
||||
_, name := text.SplitDBFromName(pkg)
|
||||
noDB = append(noDB, name)
|
||||
}
|
||||
localPkgbuilds, err = aurPkgbuilds(noDB)
|
||||
pkgbuilds = append(pkgbuilds, localPkgbuilds...)
|
||||
errs.Add(err)
|
||||
}
|
||||
|
||||
if len(repoS) != 0 {
|
||||
localPkgbuilds, err = repoPkgbuilds(dbExecutor, repoS)
|
||||
pkgbuilds = append(pkgbuilds, localPkgbuilds...)
|
||||
errs.Add(err)
|
||||
}
|
||||
|
||||
if len(aurS)+len(repoS) != len(pkgbuilds) {
|
||||
missing = true
|
||||
}
|
||||
|
||||
if len(pkgbuilds) != 0 {
|
||||
for _, pkgbuild := range pkgbuilds {
|
||||
fmt.Print(pkgbuild)
|
||||
}
|
||||
}
|
||||
|
||||
if missing {
|
||||
err = fmt.Errorf("Missing packages")
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
|
29
query.go
29
query.go
|
@ -9,6 +9,7 @@ import (
|
|||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
alpm "github.com/Jguer/go-alpm/v2"
|
||||
"github.com/leonelquinteros/gotext"
|
||||
|
@ -445,34 +446,22 @@ func aurPkgbuilds(names []string) ([]string, error) {
|
|||
return pkgbuilds, nil
|
||||
}
|
||||
|
||||
func repoPkgbuilds(names []string) ([]string, error) {
|
||||
func repoPkgbuilds(dbExecutor db.Executor, names []string) ([]string, error) {
|
||||
pkgbuilds := make([]string, 0, len(names))
|
||||
var mux sync.Mutex
|
||||
var wg sync.WaitGroup
|
||||
var errs multierror.MultiError
|
||||
|
||||
dbList, dbErr := alpmHandle.SyncDBs()
|
||||
if dbErr != nil {
|
||||
return nil, dbErr
|
||||
}
|
||||
dbSlice := dbList.Slice()
|
||||
|
||||
makeRequest := func(full string) {
|
||||
var pkg alpm.IPackage
|
||||
defer wg.Done()
|
||||
|
||||
db, name := splitDBFromName(full)
|
||||
db, name := text.SplitDBFromName(full)
|
||||
|
||||
if db == "" {
|
||||
var pkg *alpm.Package
|
||||
for _, alpmDB := range dbSlice {
|
||||
if pkg = alpmDB.Pkg(name); pkg != nil {
|
||||
db = alpmDB.Name()
|
||||
name = pkg.Base()
|
||||
if name == "" {
|
||||
name = pkg.Name()
|
||||
}
|
||||
}
|
||||
}
|
||||
if db != "" {
|
||||
pkg = dbExecutor.SatisfierFromDB(name, db)
|
||||
} else {
|
||||
pkg = dbExecutor.SyncSatisfier(name)
|
||||
}
|
||||
|
||||
values := url.Values{}
|
||||
|
@ -482,7 +471,7 @@ func repoPkgbuilds(names []string) ([]string, error) {
|
|||
|
||||
// TODO: Check existence with ls-remote
|
||||
// https://git.archlinux.org/svntogit/packages.git
|
||||
switch db {
|
||||
switch pkg.DB().Name() {
|
||||
case "core", "extra", "testing":
|
||||
url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/PKGBUILD?"
|
||||
case "community", "multilib", "community-testing", "multilib-testing":
|
||||
|
|
Loading…
Reference in a new issue