From a80b5d4c56201d9f6767b2d2e2994801b88dfd14 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Thu, 26 Aug 2021 12:21:20 +0200 Subject: [PATCH] skip packages with a multiple PKGBUILD-dependency --- main.go | 13 ++++++++++++- utils.go | 6 +++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 67dacb8..34d6ac2 100644 --- a/main.go +++ b/main.go @@ -269,7 +269,18 @@ func (b *BuildManager) parseWorker() { isLatest, local, syncVersion, err := isMirrorLatest(alpmHandle, pkg) if err != nil { - log.Warningf("[%s/%s] Problem solving dependencies: %v", pkg.FullRepo, info.Pkgbase, err) + switch err.(type) { + default: + log.Warningf("[%s/%s] Problem solving dependencies: %v", pkg.FullRepo, info.Pkgbase, err) + case MultiplePKGBUILDError: + log.Debugf("Skipped %s: Multiple PKGBUILDs for dependency found: %v", info.Pkgbase, err) + dbLock.Lock() + dbPkg = dbPkg.Update().SetStatus(SKIPPED).SetSkipReason("multiple PKGBUILD for dep. found").SaveX(context.Background()) + dbLock.Unlock() + b.repoPurge[pkg.FullRepo] <- pkg + b.parseWG.Done() + continue + } } dbLock.Lock() diff --git a/utils.go b/utils.go index 38c2033..8b15b6f 100644 --- a/utils.go +++ b/utils.go @@ -87,6 +87,10 @@ type Conf struct { type Globs []string +type MultiplePKGBUILDError struct { + error +} + func check(e error) { if e != nil { panic(e) @@ -283,7 +287,7 @@ func getSVN2GITVersion(pkg *BuildPackage) (string, error) { } if len(fPkgbuilds) > 1 { - return "", fmt.Errorf("%s: multiple PKGBUILD found: %s", pkg.Pkgbase, fPkgbuilds) + return "", MultiplePKGBUILDError{fmt.Errorf("%s: multiple PKGBUILD found: %s", pkg.Pkgbase, fPkgbuilds)} } else if len(fPkgbuilds) == 0 { return "", fmt.Errorf("%s: no matching PKGBUILD found (searched: %s, canidates: %s)", pkg.Pkgbase, filepath.Join(conf.Basedir.Upstream, "**/"+pkg.Pkgbase+"/repos/*/PKGBUILD"), pkgBuilds) }