From 7c826d2d1e96650a002b5271f0f023ab636263df Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Sat, 23 Sep 2023 12:52:51 +0200 Subject: [PATCH] fixed rebuilding of x86_64->any packages; updated deps --- ent/client.go | 21 ++++++++++++++++++++- ent/dbpackage/where.go | 23 +++-------------------- ent/dbpackage_create.go | 4 ++++ ent/runtime/runtime.go | 4 ++-- go.mod | 6 +++--- go.sum | 12 ++++++------ housekeeping.go | 8 +++++++- 7 files changed, 45 insertions(+), 33 deletions(-) diff --git a/ent/client.go b/ent/client.go index fe30292..e5cf45b 100644 --- a/ent/client.go +++ b/ent/client.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "log" + "reflect" "somegit.dev/ALHP/ALHP.GO/ent/migrate" @@ -104,11 +105,14 @@ func Open(driverName, dataSourceName string, options ...Option) (*Client, error) } } +// ErrTxStarted is returned when trying to start a new transaction from a transactional client. +var ErrTxStarted = errors.New("ent: cannot start a transaction within a transaction") + // Tx returns a new transactional client. The provided context // is used until the transaction is committed or rolled back. func (c *Client) Tx(ctx context.Context) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { - return nil, errors.New("ent: cannot start a transaction within a transaction") + return nil, ErrTxStarted } tx, err := newTx(ctx, c.driver) if err != nil { @@ -220,6 +224,21 @@ func (c *DBPackageClient) CreateBulk(builders ...*DBPackageCreate) *DBPackageCre return &DBPackageCreateBulk{config: c.config, builders: builders} } +// MapCreateBulk creates a bulk creation builder from the given slice. For each item in the slice, the function creates +// a builder and applies setFunc on it. +func (c *DBPackageClient) MapCreateBulk(slice any, setFunc func(*DBPackageCreate, int)) *DBPackageCreateBulk { + rv := reflect.ValueOf(slice) + if rv.Kind() != reflect.Slice { + return &DBPackageCreateBulk{err: fmt.Errorf("calling to DBPackageClient.MapCreateBulk with wrong type %T, need slice", slice)} + } + builders := make([]*DBPackageCreate, rv.Len()) + for i := 0; i < rv.Len(); i++ { + builders[i] = c.Create() + setFunc(builders[i], i) + } + return &DBPackageCreateBulk{config: c.config, builders: builders} +} + // Update returns an update builder for DBPackage. func (c *DBPackageClient) Update() *DBPackageUpdate { mutation := newDBPackageMutation(c.config, OpUpdate) diff --git a/ent/dbpackage/where.go b/ent/dbpackage/where.go index b123764..862e18c 100644 --- a/ent/dbpackage/where.go +++ b/ent/dbpackage/where.go @@ -1156,32 +1156,15 @@ func TagRevContainsFold(v string) predicate.DBPackage { // And groups predicates with the AND operator between them. func And(predicates ...predicate.DBPackage) predicate.DBPackage { - return predicate.DBPackage(func(s *sql.Selector) { - s1 := s.Clone().SetP(nil) - for _, p := range predicates { - p(s1) - } - s.Where(s1.P()) - }) + return predicate.DBPackage(sql.AndPredicates(predicates...)) } // Or groups predicates with the OR operator between them. func Or(predicates ...predicate.DBPackage) predicate.DBPackage { - return predicate.DBPackage(func(s *sql.Selector) { - s1 := s.Clone().SetP(nil) - for i, p := range predicates { - if i > 0 { - s1.Or() - } - p(s1) - } - s.Where(s1.P()) - }) + return predicate.DBPackage(sql.OrPredicates(predicates...)) } // Not applies the not operator on the given predicate. func Not(p predicate.DBPackage) predicate.DBPackage { - return predicate.DBPackage(func(s *sql.Selector) { - p(s.Not()) - }) + return predicate.DBPackage(sql.NotPredicates(p)) } diff --git a/ent/dbpackage_create.go b/ent/dbpackage_create.go index 8ab1677..83c051e 100644 --- a/ent/dbpackage_create.go +++ b/ent/dbpackage_create.go @@ -470,11 +470,15 @@ func (dpc *DBPackageCreate) createSpec() (*DBPackage, *sqlgraph.CreateSpec) { // DBPackageCreateBulk is the builder for creating many DBPackage entities in bulk. type DBPackageCreateBulk struct { config + err error builders []*DBPackageCreate } // Save creates the DBPackage entities in the database. func (dpcb *DBPackageCreateBulk) Save(ctx context.Context) ([]*DBPackage, error) { + if dpcb.err != nil { + return nil, dpcb.err + } specs := make([]*sqlgraph.CreateSpec, len(dpcb.builders)) nodes := make([]*DBPackage, len(dpcb.builders)) mutators := make([]Mutator, len(dpcb.builders)) diff --git a/ent/runtime/runtime.go b/ent/runtime/runtime.go index 4ea738e..078ef46 100644 --- a/ent/runtime/runtime.go +++ b/ent/runtime/runtime.go @@ -5,6 +5,6 @@ package runtime // The schema-stitching logic is generated in somegit.dev/ALHP/ALHP.GO/ent/runtime.go const ( - Version = "v0.12.3" // Version of ent codegen. - Sum = "h1:N5lO2EOrHpCH5HYfiMOCHYbo+oh5M8GjT0/cx5x6xkk=" // Sum of ent codegen. + Version = "v0.12.4" // Version of ent codegen. + Sum = "h1:LddPnAyxls/O7DTXZvUGDj0NZIdGSu317+aoNLJWbD8=" // Sum of ent codegen. ) diff --git a/go.mod b/go.mod index e5a8519..9d0c672 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module somegit.dev/ALHP/ALHP.GO go 1.20 require ( - entgo.io/ent v0.12.3 + entgo.io/ent v0.12.4 github.com/Jguer/go-alpm/v2 v2.2.1 github.com/Morganamilo/go-pacmanconf v0.0.0-20210502114700-cff030e927a5 github.com/Morganamilo/go-srcinfo v1.0.0 @@ -18,7 +18,7 @@ require ( ) require ( - ariga.io/atlas v0.14.0 // indirect + ariga.io/atlas v0.14.1 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect @@ -34,7 +34,7 @@ require ( github.com/jackc/pgtype v1.14.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/zclconf/go-cty v1.14.0 // indirect - golang.org/x/crypto v0.12.0 // indirect + golang.org/x/crypto v0.13.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/sys v0.12.0 // indirect golang.org/x/text v0.13.0 // indirect diff --git a/go.sum b/go.sum index dc25f86..8ba74ca 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ -ariga.io/atlas v0.14.0 h1:2gpshFCwvlbXxRJHahUbIpDVdsbJtZVVeuqL410LSTY= -ariga.io/atlas v0.14.0/go.mod h1:+TR129FJZ5Lvzms6dvCeGWh1yR6hMvmXBhug4hrNIGk= -entgo.io/ent v0.12.3 h1:N5lO2EOrHpCH5HYfiMOCHYbo+oh5M8GjT0/cx5x6xkk= -entgo.io/ent v0.12.3/go.mod h1:AigGGx+tbrBBYHAzGOg8ND661E5cxx1Uiu5o/otJ6Yg= +ariga.io/atlas v0.14.1 h1:mun+I5QiFaKVJBfHNnlTqa0PCj6qCZsp/M3dxFC9WPg= +ariga.io/atlas v0.14.1/go.mod h1:isZrlzJ5cpoCoKFoY9knZug7Lq4pP1cm8g3XciLZ0Pw= +entgo.io/ent v0.12.4 h1:LddPnAyxls/O7DTXZvUGDj0NZIdGSu317+aoNLJWbD8= +entgo.io/ent v0.12.4/go.mod h1:Y3JVAjtlIk8xVZYSn3t3mf8xlZIn5SAOXZQxD6kKI+Q= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/Jguer/go-alpm/v2 v2.2.1 h1:PMIRKo2lY0wfhN8W8Scc5v82zQeDsTv702CuDiz81sA= @@ -179,8 +179,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= diff --git a/housekeeping.go b/housekeeping.go index d3d92a1..1ec3d58 100644 --- a/housekeeping.go +++ b/housekeeping.go @@ -61,8 +61,14 @@ func housekeeping(repo, march string, wg *sync.WaitGroup) error { pkgResolved.Architecture() != pkg.Arch || pkgResolved.Name() != mPackage.Name() { // package not found on mirror/db -> not part of any repo anymore log.Infof("[HK] %s->%s not included in repo", pkg.FullRepo, mPackage.Name()) - buildManager.repoPurge[pkg.FullRepo] <- []*ProtoPackage{pkg} + err = pkg.findPkgFiles() + if err != nil { + log.Errorf("[HK] %s->%s unable to get pkg-files: %v", pkg.FullRepo, mPackage.Name(), err) + continue + } err = db.DBPackage.DeleteOne(pkg.DBPackage).Exec(context.Background()) + pkg.DBPackage = nil + buildManager.repoPurge[pkg.FullRepo] <- []*ProtoPackage{pkg} if err != nil { return err }