Allow use of rpc client as an alternative to the metadata client (#1918)

* use updated aur client

* add logger to rpc client

* update go.mod
This commit is contained in:
Jo 2023-02-20 12:20:48 +01:00 committed by GitHub
parent 2f5fd5cb1c
commit f1d086df1d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 81 additions and 100 deletions

9
go.mod
View file

@ -1,7 +1,7 @@
module github.com/Jguer/yay/v11
require (
github.com/Jguer/aur v1.1.3
github.com/Jguer/aur v1.2.0
github.com/Jguer/go-alpm/v2 v2.1.2
github.com/Jguer/votar v1.0.0
github.com/Morganamilo/go-pacmanconf v0.0.0-20210502114700-cff030e927a5
@ -28,7 +28,12 @@ require (
github.com/deckarep/golang-set/v2 v2.1.0
github.com/itchyny/gojq v0.12.11 // indirect
github.com/itchyny/timefmt-go v0.1.5 // indirect
github.com/ohler55/ojg v1.17.4 // indirect
github.com/ohler55/ojg v1.17.5 // indirect
)
require (
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
)
go 1.19

21
go.sum
View file

@ -1,5 +1,5 @@
github.com/Jguer/aur v1.1.3 h1:wuqz67ZqUnyqS56WjNSwKqrZCJFeDuG+ljWnmmPKg04=
github.com/Jguer/aur v1.1.3/go.mod h1:YWXsL0qywB3kY8gduwAJwklN38opQYRm6+pYMJgtCd0=
github.com/Jguer/aur v1.2.0 h1:hWg0JcGQ9WkPlnElr3tZ6dW+GfD/wZTr9kym5GFY3OE=
github.com/Jguer/aur v1.2.0/go.mod h1:x4iPZX1qZoQtPiYgFepVO/6kbz7zwFkep8gz5tzga64=
github.com/Jguer/go-alpm/v2 v2.1.2 h1:CGTIxzuEpT9Q3a7IBrx0E6acoYoaHX2Z93UOApPDhgU=
github.com/Jguer/go-alpm/v2 v2.1.2/go.mod h1:uLQcTMNM904dRiGU+/JDtDdd7Nd8mVbEVaHjhmziT7w=
github.com/Jguer/votar v1.0.0 h1:drPYpV5Py5BeAQS8xezmT6uCEfLzotNjLf5yfmlHKTg=
@ -21,6 +21,11 @@ github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6
github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/itchyny/gojq v0.12.11 h1:YhLueoHhHiN4mkfM+3AyJV6EPcCxKZsOnYf+aVSwaQw=
github.com/itchyny/gojq v0.12.11/go.mod h1:o3FT8Gkbg/geT4pLI0tF3hvip5F3Y/uskjRz9OYa38g=
github.com/itchyny/timefmt-go v0.1.5 h1:G0INE2la8S6ru/ZI5JecgyzbbJNs5lG1RcBqa7Jm6GE=
@ -29,10 +34,8 @@ github.com/leonelquinteros/gotext v1.5.1 h1:vmddRn3gHp67YFjZLZE2AZsgYMT4IBTJhua4
github.com/leonelquinteros/gotext v1.5.1/go.mod h1:/A4Y7BvIsf5JHO60E43ZQDVkV3qO+7eP8HjeqD6ChIA=
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4=
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
github.com/ohler55/ojg v1.15.0 h1:Z95FvBiMsMOOGP9Nzv5OVV4ND2KnEMxk0GOS8Kvcahg=
github.com/ohler55/ojg v1.15.0/go.mod h1:7Ghirupn8NC8hSSDpI0gcjorPxj+vSVIONDWfliHR1k=
github.com/ohler55/ojg v1.17.4 h1:6Ss87DyAZHU0ODZu6Cmuahj5UiVaRD1n8C4KNm0qMYg=
github.com/ohler55/ojg v1.17.4/go.mod h1:7Ghirupn8NC8hSSDpI0gcjorPxj+vSVIONDWfliHR1k=
github.com/ohler55/ojg v1.17.5 h1:SY6/cdhVzsLinNFIBRNSWhJgihvEWco5Y0TJe46XJ1Y=
github.com/ohler55/ojg v1.17.5/go.mod h1:7Ghirupn8NC8hSSDpI0gcjorPxj+vSVIONDWfliHR1k=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@ -62,21 +65,15 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View file

@ -10,7 +10,6 @@ import (
"testing"
aur "github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -141,7 +140,7 @@ func TestIntegrationLocalInstall(t *testing.T) {
CmdBuilder: cmdBuilder,
VCSStore: &vcs.Mock{},
AURCache: &mockaur.MockAUR{
GetFn: func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
GetFn: func(ctx context.Context, query *aur.Query) ([]aur.Pkg, error) {
return []aur.Pkg{}, nil
},
},
@ -259,7 +258,7 @@ func TestIntegrationLocalInstallMissingDep(t *testing.T) {
CmdBuilder: cmdBuilder,
VCSStore: &vcs.Mock{},
AURCache: &mockaur.MockAUR{
GetFn: func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
GetFn: func(ctx context.Context, query *aur.Query) ([]aur.Pkg, error) {
return []aur.Pkg{}, nil
},
},

View file

@ -9,6 +9,7 @@ import (
"sync"
"github.com/Jguer/aur"
"github.com/Jguer/aur/rpc"
alpm "github.com/Jguer/go-alpm/v2"
"github.com/leonelquinteros/gotext"
@ -29,10 +30,10 @@ type Pool struct {
Groups []string
AlpmExecutor db.Executor
Warnings *query.AURWarnings
aurClient aur.ClientInterface
aurClient rpc.ClientInterface
}
func newPool(dbExecutor db.Executor, aurClient aur.ClientInterface) *Pool {
func newPool(dbExecutor db.Executor, aurClient rpc.ClientInterface) *Pool {
dp := &Pool{
Targets: []Target{},
Explicit: map[string]struct{}{},
@ -348,7 +349,7 @@ func (dp *Pool) ResolveRepoDependency(pkg db.IPackage, noDeps bool) {
func GetPool(ctx context.Context, pkgs []string,
warnings *query.AURWarnings,
dbExecutor db.Executor,
aurClient aur.ClientInterface,
aurClient rpc.ClientInterface,
mode parser.TargetMode,
ignoreProviders, noConfirm, provides bool,
rebuild string, splitN int, noDeps bool, noCheckDeps bool, assumeInstalled []string,

View file

@ -14,7 +14,6 @@ import (
"github.com/Jguer/yay/v11/pkg/topo"
aurc "github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
alpm "github.com/Jguer/go-alpm/v2"
gosrc "github.com/Morganamilo/go-srcinfo"
"github.com/leonelquinteros/gotext"
@ -94,13 +93,9 @@ var colorMap = map[Reason]string{
CheckDep: "forestgreen",
}
type AURCache interface {
Get(ctx context.Context, query *metadata.AURQuery) ([]aurc.Pkg, error)
}
type Grapher struct {
dbExecutor db.Executor
aurCache AURCache
aurCache aurc.QueryClient
fullGraph bool // If true, the graph will include all dependencies including already installed ones or repo
noConfirm bool
noDeps bool // If true, the graph will not include dependencies
@ -110,7 +105,7 @@ type Grapher struct {
providerCache map[string]*aur.Pkg
}
func NewGrapher(dbExecutor db.Executor, aurCache AURCache,
func NewGrapher(dbExecutor db.Executor, aurCache aurc.QueryClient,
fullGraph, noConfirm bool, output io.Writer, noDeps bool, noCheckDeps bool,
) *Grapher {
return &Grapher{
@ -342,7 +337,7 @@ func (g *Grapher) GraphFromAURCache(ctx context.Context,
}
for _, target := range targets {
aurPkgs, _ := g.aurCache.Get(ctx, &metadata.AURQuery{By: aurc.Name, Needles: []string{target}})
aurPkgs, _ := g.aurCache.Get(ctx, &aurc.Query{By: aurc.Name, Needles: []string{target}})
if len(aurPkgs) == 0 {
text.Errorln("No AUR package found for", target)
@ -447,7 +442,7 @@ func (g *Grapher) addNodes(
} else {
var errMeta error
aurPkgs, errMeta = g.aurCache.Get(ctx,
&metadata.AURQuery{
&aurc.Query{
Needles: []string{depName},
By: aurc.None,
Contains: false,

View file

@ -7,13 +7,13 @@ import (
"os"
"testing"
aurc "github.com/Jguer/aur"
"github.com/stretchr/testify/require"
"github.com/Jguer/yay/v11/pkg/db"
"github.com/Jguer/yay/v11/pkg/db/mock"
mockaur "github.com/Jguer/yay/v11/pkg/dep/mock"
aur "github.com/Jguer/yay/v11/pkg/query"
"github.com/Jguer/aur/metadata"
"github.com/stretchr/testify/require"
)
func ptrString(s string) *string {
@ -31,7 +31,7 @@ func getFromFile(t *testing.T, filePath string) mockaur.GetFunc {
err = json.Unmarshal(fBytes, &pkgs)
require.NoError(t, err)
return func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
return func(ctx context.Context, query *aurc.Query) ([]aur.Pkg, error) {
return pkgs, nil
}
}
@ -72,7 +72,7 @@ func TestGrapher_GraphFromTargets_jellyfin(t *testing.T) {
},
}
mockAUR := &mockaur.MockAUR{GetFn: func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
mockAUR := &mockaur.MockAUR{GetFn: func(ctx context.Context, query *aurc.Query) ([]aur.Pkg, error) {
if query.Needles[0] == "jellyfin" {
jfinFn := getFromFile(t, "testdata/jellyfin.json")
return jfinFn(ctx, query)
@ -93,7 +93,7 @@ func TestGrapher_GraphFromTargets_jellyfin(t *testing.T) {
type fields struct {
dbExecutor db.Executor
aurCache AURCache
aurCache aurc.QueryClient
noDeps bool
noCheckDeps bool
}

View file

@ -4,16 +4,15 @@ import (
"context"
"github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
)
type GetFunc func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error)
type GetFunc func(ctx context.Context, query *aur.Query) ([]aur.Pkg, error)
type MockAUR struct {
GetFn GetFunc
}
func (m *MockAUR) Get(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
func (m *MockAUR) Get(ctx context.Context, query *aur.Query) ([]aur.Pkg, error) {
if m.GetFn != nil {
return m.GetFn(ctx, query)
}

View file

@ -5,6 +5,7 @@ import (
"sync"
"github.com/Jguer/aur"
"github.com/Jguer/aur/rpc"
"github.com/leonelquinteros/gotext"
"github.com/Jguer/yay/v11/pkg/intrange"
@ -19,7 +20,7 @@ type Pkg = aur.Pkg
// of packages exceeds the number set in config.RequestSplitN.
// If the number does exceed config.RequestSplitN multiple aur requests will be
// performed concurrently.
func AURInfo(ctx context.Context, aurClient aur.ClientInterface, names []string, warnings *AURWarnings, splitN int) ([]Pkg, error) {
func AURInfo(ctx context.Context, aurClient rpc.ClientInterface, names []string, warnings *AURWarnings, splitN int) ([]Pkg, error) {
info := make([]Pkg, 0, len(names))
seen := make(map[string]int)
@ -84,7 +85,7 @@ func AURInfo(ctx context.Context, aurClient aur.ClientInterface, names []string,
return info, nil
}
func AURInfoPrint(ctx context.Context, aurClient aur.ClientInterface, names []string, splitN int) ([]Pkg, error) {
func AURInfoPrint(ctx context.Context, aurClient rpc.ClientInterface, names []string, splitN int) ([]Pkg, error) {
text.OperationInfoln(gotext.Get("Querying AUR..."))
warnings := &AURWarnings{}

View file

@ -9,6 +9,7 @@ import (
"strings"
"github.com/Jguer/aur"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/go-alpm/v2"
"github.com/adrg/strutil"
"github.com/adrg/strutil/metrics"
@ -39,11 +40,11 @@ type MixedSourceQueryBuilder struct {
bottomUp bool
singleLineResults bool
aurClient aur.ClientInterface
aurClient rpc.ClientInterface
}
func NewMixedSourceQueryBuilder(
aurClient aur.ClientInterface,
aurClient rpc.ClientInterface,
sortBy string,
targetMode parser.TargetMode,
searchBy string,

View file

@ -5,9 +5,10 @@ import (
"strings"
"testing"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/yay/v11/pkg/settings/parser"
"github.com/Jguer/aur"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -30,7 +31,7 @@ func TestMixedSourceQueryBuilder(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.desc, func(t *testing.T) {
client, err := aur.NewClient(aur.WithHTTPClient(&mockDoer{}))
client, err := rpc.NewClient(rpc.WithHTTPClient(&mockDoer{}))
queryBuilder := NewMixedSourceQueryBuilder(client, "votes", parser.ModeAny, "", tc.bottomUp, false)
search := []string{"linux"}
mockStore := &mockDB{}

View file

@ -16,7 +16,7 @@ import (
"github.com/Jguer/yay/v11/pkg/stringset"
"github.com/Jguer/yay/v11/pkg/text"
"github.com/Jguer/aur/metadata"
"github.com/Jguer/aur/rpc"
)
type SearchVerbosity int
@ -28,10 +28,6 @@ const (
Minimal
)
type AURCache interface {
Get(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error)
}
type SourceQueryBuilder struct {
repoQuery
aurQuery
@ -43,13 +39,13 @@ type SourceQueryBuilder struct {
bottomUp bool
singleLineResults bool
aurClient aur.ClientInterface
aurCache AURCache
aurClient rpc.ClientInterface
aurCache aur.QueryClient
}
func NewSourceQueryBuilder(
aurClient aur.ClientInterface,
aurCache AURCache,
aurClient rpc.ClientInterface,
aurCache aur.QueryClient,
sortBy string,
targetMode parser.TargetMode,
searchBy string,
@ -197,7 +193,7 @@ func filterAURResults(pkgS []string, results []aur.Pkg) []aur.Pkg {
// queryAUR searches AUR and narrows based on subarguments.
func queryAUR(ctx context.Context,
aurClient aur.ClientInterface, aurMetadata AURCache,
aurClient rpc.ClientInterface, aurMetadata aur.QueryClient,
pkgS []string, searchBy string, newEngine bool,
) ([]aur.Pkg, error) {
var (
@ -209,7 +205,7 @@ func queryAUR(ctx context.Context,
var r []aur.Pkg
if aurMetadata != nil && newEngine {
q, errM := aurMetadata.Get(ctx, &metadata.AURQuery{
q, errM := aurMetadata.Get(ctx, &aur.Query{
Needles: []string{word},
By: by,
Contains: true,

View file

@ -8,11 +8,12 @@ import (
"strings"
"testing"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/yay/v11/pkg/db"
"github.com/Jguer/yay/v11/pkg/db/mock"
"github.com/Jguer/yay/v11/pkg/settings/parser"
"github.com/Jguer/aur"
"github.com/Jguer/go-alpm/v2"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@ -105,7 +106,7 @@ func TestSourceQueryBuilder(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.desc, func(t *testing.T) {
client, err := aur.NewClient(aur.WithHTTPClient(&mockDoer{}))
client, err := rpc.NewClient(rpc.WithHTTPClient(&mockDoer{}))
require.NoError(t, err)
queryBuilder := NewSourceQueryBuilder(client, nil, "votes", parser.ModeAny, "", tc.bottomUp, false, false)

View file

@ -16,11 +16,10 @@ import (
"github.com/Jguer/yay/v11/pkg/text"
"github.com/Jguer/yay/v11/pkg/vcs"
"github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/votar/pkg/vote"
"github.com/leonelquinteros/gotext"
"github.com/pkg/errors"
)
// HideMenus indicates if pacman's provider menus must be hidden.
@ -79,6 +78,7 @@ type Configuration struct {
SeparateSources bool `json:"separatesources"`
NewInstallEngine bool `json:"newinstallengine"`
Debug bool `json:"debug"`
UseRPC bool `json:"rpc"`
}
// SaveConfig writes yay config to file.
@ -238,6 +238,7 @@ func DefaultConfig(version string) *Configuration {
NewInstallEngine: false,
Version: version,
Debug: false,
UseRPC: false,
}
}
@ -310,21 +311,25 @@ func NewConfig(version string) (*Configuration, error) {
metadata.WithCacheFilePath(filepath.Join(newConfig.BuildDir, "aur.json")),
metadata.WithRequestEditorFn(userAgentFn),
metadata.WithBaseURL(newConfig.AURURL),
metadata.WithDebugLogger(text.Debugln),
metadata.WithDebugLogger(newConfig.Runtime.Logger.Child("aur").Debugln),
)
if errAURCache != nil {
return nil, errors.Wrap(errAURCache, gotext.Get("failed to retrieve aur Cache"))
return nil, fmt.Errorf(gotext.Get("failed to retrieve aur Cache")+": %w", errAURCache)
}
var errAUR error
newConfig.Runtime.AURClient, errAUR = aur.NewClient(
aur.WithHTTPClient(newConfig.Runtime.HTTPClient),
aur.WithRequestEditorFn(userAgentFn))
newConfig.Runtime.AURClient, errAUR = rpc.NewClient(
rpc.WithHTTPClient(newConfig.Runtime.HTTPClient),
rpc.WithRequestEditorFn(userAgentFn),
rpc.WithLogFn(newConfig.Runtime.Logger.Child("rpc").Debugln))
if errAUR != nil {
return nil, errAUR
}
if newConfig.UseRPC {
newConfig.Runtime.AURCache = newConfig.Runtime.AURClient
}
newConfig.Runtime.VCSStore = vcs.NewInfoStore(
filepath.Join(cacheHome, vcsFileName), newConfig.Runtime.CmdBuilder)

View file

@ -1,7 +1,6 @@
package settings
import (
"context"
"net/http"
"github.com/Jguer/yay/v11/pkg/db"
@ -12,15 +11,11 @@ import (
"github.com/Jguer/yay/v11/pkg/vcs"
"github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/votar/pkg/vote"
"github.com/Morganamilo/go-pacmanconf"
)
type AURCache interface {
Get(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error)
}
type Runtime struct {
Mode parser.TargetMode
QueryBuilder query.Builder
@ -32,9 +27,9 @@ type Runtime struct {
VCSStore vcs.Store
CmdBuilder exe.ICmdBuilder
HTTPClient *http.Client
AURClient *aur.Client
AURClient *rpc.Client
VoteClient *vote.Client
AURCache AURCache
AURCache aur.QueryClient
DBExecutor db.Executor
Logger *text.Logger
}

View file

@ -5,7 +5,6 @@ import (
"sort"
"github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
"github.com/Jguer/go-alpm/v2"
mapset "github.com/deckarep/golang-set/v2"
"github.com/leonelquinteros/gotext"
@ -14,7 +13,6 @@ import (
"github.com/Jguer/yay/v11/pkg/dep"
"github.com/Jguer/yay/v11/pkg/intrange"
"github.com/Jguer/yay/v11/pkg/multierror"
"github.com/Jguer/yay/v11/pkg/query"
"github.com/Jguer/yay/v11/pkg/settings"
"github.com/Jguer/yay/v11/pkg/text"
"github.com/Jguer/yay/v11/pkg/topo"
@ -23,8 +21,7 @@ import (
type UpgradeService struct {
grapher *dep.Grapher
aurCache settings.AURCache
aurClient aur.ClientInterface
aurCache aur.QueryClient
dbExecutor db.Executor
vcsStore vcs.Store
runtime *settings.Runtime
@ -33,15 +30,13 @@ type UpgradeService struct {
noConfirm bool
}
func NewUpgradeService(grapher *dep.Grapher, aurCache settings.AURCache,
aurClient aur.ClientInterface, dbExecutor db.Executor,
vcsStore vcs.Store, runtime *settings.Runtime, cfg *settings.Configuration,
noConfirm bool, logger *text.Logger,
func NewUpgradeService(grapher *dep.Grapher, aurCache aur.QueryClient,
dbExecutor db.Executor, vcsStore vcs.Store, runtime *settings.Runtime,
cfg *settings.Configuration, noConfirm bool, logger *text.Logger,
) *UpgradeService {
return &UpgradeService{
grapher: grapher,
aurCache: aurCache,
aurClient: aurClient,
dbExecutor: dbExecutor,
vcsStore: vcsStore,
runtime: runtime,
@ -53,7 +48,7 @@ func NewUpgradeService(grapher *dep.Grapher, aurCache settings.AURCache,
// upGraph adds packages to upgrade to the graph.
func (u *UpgradeService) upGraph(ctx context.Context, graph *topo.Graph[string, *dep.InstallInfo],
warnings *query.AURWarnings, enableDowngrade bool,
enableDowngrade bool,
filter Filter,
) (err error) {
var (
@ -69,12 +64,7 @@ func (u *UpgradeService) upGraph(ctx context.Context, graph *topo.Graph[string,
if u.runtime.Mode.AtLeastAUR() {
u.log.OperationInfoln(gotext.Get("Searching AUR for updates..."))
var _aurdata []aur.Pkg
if u.aurCache != nil {
_aurdata, err = u.aurCache.Get(ctx, &metadata.AURQuery{Needles: remoteNames, By: aur.Name})
} else {
_aurdata, err = query.AURInfo(ctx, u.aurClient, remoteNames, warnings, u.cfg.RequestSplitN)
}
_aurdata, err := u.aurCache.Get(ctx, &aur.Query{Needles: remoteNames, By: aur.Name})
errs.Add(err)
@ -235,16 +225,12 @@ func (u *UpgradeService) GraphUpgrades(ctx context.Context,
graph = topo.New[string, *dep.InstallInfo]()
}
warnings := query.NewWarnings()
err := u.upGraph(ctx, graph, warnings, enableDowngrade,
err := u.upGraph(ctx, graph, enableDowngrade,
func(*Upgrade) bool { return true })
if err != nil {
return graph, err
}
warnings.Print()
if graph.Len() == 0 {
return graph, nil
}

View file

@ -7,7 +7,6 @@ import (
"testing"
"github.com/Jguer/aur"
"github.com/Jguer/aur/metadata"
"github.com/Jguer/go-alpm/v2"
"github.com/stretchr/testify/assert"
@ -115,7 +114,7 @@ func TestUpgradeService_GraphUpgrades(t *testing.T) {
}
mockAUR := &mockaur.MockAUR{
GetFn: func(ctx context.Context, query *metadata.AURQuery) ([]aur.Pkg, error) {
GetFn: func(ctx context.Context, query *aur.Query) ([]aur.Pkg, error) {
return []aur.Pkg{
{Name: "yay", Version: "10.2.4", PackageBase: "yay"},
{Name: "example-git", Version: "2.2.1.r69.g8a10460-1", PackageBase: "example"},

View file

@ -56,8 +56,8 @@ func syncInstall(ctx context.Context,
var errSysUp error
upService := upgrade.NewUpgradeService(
grapher, aurCache, config.Runtime.AURClient,
dbExecutor, config.Runtime.VCSStore, config.Runtime, config, settings.NoConfirm, config.Runtime.Logger.Child("upgrade"))
grapher, aurCache, dbExecutor, config.Runtime.VCSStore,
config.Runtime, config, settings.NoConfirm, config.Runtime.Logger.Child("upgrade"))
graph, errSysUp = upService.GraphUpgrades(ctx, graph, cmdArgs.ExistsDouble("u", "sysupgrade"))
if errSysUp != nil {

View file

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/Jguer/aur"
"github.com/Jguer/aur/rpc"
"github.com/Jguer/votar/pkg/vote"
"github.com/leonelquinteros/gotext"
@ -22,7 +22,7 @@ func (e *ErrAURVote) Error() string {
}
func handlePackageVote(ctx context.Context,
targets []string, aurClient aur.ClientInterface,
targets []string, aurClient rpc.ClientInterface,
voteClient *vote.Client, splitN int, upvote bool,
) error {
infos, err := query.AURInfoPrint(ctx, aurClient, targets, splitN)