From 9822c43cf1ab9256adbfb22ccdf8f4e9f84a88ca Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Sun, 10 Dec 2023 14:51:53 +0100 Subject: [PATCH] added detection for already build packages waiting to be moved --- buildmanager.go | 9 +++++++++ proto_package.go | 13 +++++++++++++ 2 files changed, 22 insertions(+) diff --git a/buildmanager.go b/buildmanager.go index 82cda93..19b04ad 100644 --- a/buildmanager.go +++ b/buildmanager.go @@ -601,6 +601,15 @@ func (b *BuildManager) genQueue() ([]*ProtoPackage, error) { continue } + aBuild, err := pkg.IsBuild() + if err != nil { + log.Warningf("[QG] %s->%s error determining build packages: %v", pkg.FullRepo, pkg.Pkgbase, err) + } + if aBuild { + log.Infof("[QG] %s->%s already build, skipping build", pkg.FullRepo, pkg.Pkgbase) + continue + } + if pkg.DBPackage == nil { err = pkg.toDBPackage(true) if err != nil { diff --git a/proto_package.go b/proto_package.go index d227eef..9a408a5 100644 --- a/proto_package.go +++ b/proto_package.go @@ -721,3 +721,16 @@ func (p *ProtoPackage) isMirrorLatest(h *alpm.Handle) (latest bool, foundPkg alp func (p *ProtoPackage) PkgbaseEquals(p2 *ProtoPackage, marchSensitive bool) bool { return (marchSensitive && (p.Pkgbase == p2.Pkgbase && p.FullRepo == p2.FullRepo)) || (!marchSensitive && p.Pkgbase == p2.Pkgbase) } + +func (p *ProtoPackage) IsBuild() (bool, error) { + if p.DBPackage == nil { + return false, nil + } + + matches, err := filepath.Glob(filepath.Join(conf.Basedir.Work, waitingDir, p.FullRepo, p.DBPackage.Packages[0]+"*-x86_64.pkg.tar.zst")) + if err != nil { + return false, err + } + + return len(matches) > 0, nil +}