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)
|
err = completion.Show(dbExecutor, config.AURURL, config.Runtime.CompletionPath, config.CompletionInterval, false)
|
||||||
case cmdArgs.ExistsArg("s", "stats"):
|
case cmdArgs.ExistsArg("s", "stats"):
|
||||||
err = localStatistics(dbExecutor)
|
err = localStatistics(dbExecutor)
|
||||||
case cmdArgs.existsArg("p", "pkgbuild"):
|
case cmdArgs.ExistsArg("p", "pkgbuild"):
|
||||||
err = printPkgbuilds(cmdArgs.targets)
|
err = printPkgbuilds(dbExecutor, cmdArgs.Targets)
|
||||||
default:
|
default:
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
|
|
44
print.go
44
print.go
|
@ -9,6 +9,7 @@ import (
|
||||||
rpc "github.com/mikkeloscar/aur"
|
rpc "github.com/mikkeloscar/aur"
|
||||||
|
|
||||||
"github.com/Jguer/yay/v10/pkg/db"
|
"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/query"
|
||||||
"github.com/Jguer/yay/v10/pkg/settings"
|
"github.com/Jguer/yay/v10/pkg/settings"
|
||||||
"github.com/Jguer/yay/v10/pkg/stringset"
|
"github.com/Jguer/yay/v10/pkg/stringset"
|
||||||
|
@ -266,3 +267,46 @@ outer:
|
||||||
|
|
||||||
return nil
|
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"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
alpm "github.com/Jguer/go-alpm/v2"
|
alpm "github.com/Jguer/go-alpm/v2"
|
||||||
"github.com/leonelquinteros/gotext"
|
"github.com/leonelquinteros/gotext"
|
||||||
|
@ -445,34 +446,22 @@ func aurPkgbuilds(names []string) ([]string, error) {
|
||||||
return pkgbuilds, nil
|
return pkgbuilds, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func repoPkgbuilds(names []string) ([]string, error) {
|
func repoPkgbuilds(dbExecutor db.Executor, names []string) ([]string, error) {
|
||||||
pkgbuilds := make([]string, 0, len(names))
|
pkgbuilds := make([]string, 0, len(names))
|
||||||
var mux sync.Mutex
|
var mux sync.Mutex
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
var errs multierror.MultiError
|
var errs multierror.MultiError
|
||||||
|
|
||||||
dbList, dbErr := alpmHandle.SyncDBs()
|
|
||||||
if dbErr != nil {
|
|
||||||
return nil, dbErr
|
|
||||||
}
|
|
||||||
dbSlice := dbList.Slice()
|
|
||||||
|
|
||||||
makeRequest := func(full string) {
|
makeRequest := func(full string) {
|
||||||
|
var pkg alpm.IPackage
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
db, name := splitDBFromName(full)
|
db, name := text.SplitDBFromName(full)
|
||||||
|
|
||||||
if db == "" {
|
if db != "" {
|
||||||
var pkg *alpm.Package
|
pkg = dbExecutor.SatisfierFromDB(name, db)
|
||||||
for _, alpmDB := range dbSlice {
|
} else {
|
||||||
if pkg = alpmDB.Pkg(name); pkg != nil {
|
pkg = dbExecutor.SyncSatisfier(name)
|
||||||
db = alpmDB.Name()
|
|
||||||
name = pkg.Base()
|
|
||||||
if name == "" {
|
|
||||||
name = pkg.Name()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
values := url.Values{}
|
values := url.Values{}
|
||||||
|
@ -482,7 +471,7 @@ func repoPkgbuilds(names []string) ([]string, error) {
|
||||||
|
|
||||||
// TODO: Check existence with ls-remote
|
// TODO: Check existence with ls-remote
|
||||||
// https://git.archlinux.org/svntogit/packages.git
|
// https://git.archlinux.org/svntogit/packages.git
|
||||||
switch db {
|
switch pkg.DB().Name() {
|
||||||
case "core", "extra", "testing":
|
case "core", "extra", "testing":
|
||||||
url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/PKGBUILD?"
|
url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/PKGBUILD?"
|
||||||
case "community", "multilib", "community-testing", "multilib-testing":
|
case "community", "multilib", "community-testing", "multilib-testing":
|
||||||
|
|
Loading…
Reference in a new issue