forked from ALHP/ALHP.GO
Compare commits
9 Commits
fix/PR_109
...
master
Author | SHA1 | Date | |
---|---|---|---|
47552c88d8 | |||
bb16bdcb61 | |||
bcea0e99cb | |||
f051709c4f | |||
3f30b9d6a1 | |||
65d6e7e135 | |||
dd118c5f97 | |||
ca85586118 | |||
78666f9899 |
14
main.go
14
main.go
@@ -218,6 +218,7 @@ func (b *BuildManager) repoWorker(repo string) {
|
||||
for {
|
||||
select {
|
||||
case pkgL := <-b.repoAdd[repo]:
|
||||
b.repoWG.Add(1)
|
||||
toAdd := make([]string, 0)
|
||||
for _, pkg := range pkgL {
|
||||
toAdd = append(toAdd, pkg.PkgFiles...)
|
||||
@@ -263,6 +264,7 @@ func (b *BuildManager) repoWorker(repo string) {
|
||||
if err != nil {
|
||||
log.Warningf("Error updating lastupdate: %v", err)
|
||||
}
|
||||
b.repoWG.Done()
|
||||
case pkgL := <-b.repoPurge[repo]:
|
||||
for _, pkg := range pkgL {
|
||||
if _, err := os.Stat(filepath.Join(conf.Basedir.Repo, pkg.FullRepo, "os", conf.Arch, pkg.FullRepo) + ".db.tar.xz"); err != nil {
|
||||
@@ -279,7 +281,13 @@ func (b *BuildManager) repoWorker(repo string) {
|
||||
|
||||
var realPkgs []string
|
||||
for _, filePath := range pkg.PkgFiles {
|
||||
realPkgs = append(realPkgs, Package(filePath).Name())
|
||||
if _, err := os.Stat(filePath); err == nil {
|
||||
realPkgs = append(realPkgs, Package(filePath).Name())
|
||||
}
|
||||
}
|
||||
|
||||
if len(realPkgs) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
b.repoWG.Add(1)
|
||||
@@ -293,7 +301,7 @@ func (b *BuildManager) repoWorker(repo string) {
|
||||
}
|
||||
|
||||
if pkg.DbPackage != nil {
|
||||
_ = pkg.DbPackage.Update().ClearRepoVersion().Exec(context.Background())
|
||||
_ = pkg.DbPackage.Update().ClearRepoVersion().ClearHash().Exec(context.Background())
|
||||
}
|
||||
|
||||
for _, file := range pkg.PkgFiles {
|
||||
@@ -408,6 +416,8 @@ func (b *BuildManager) syncWorker(ctx context.Context) error {
|
||||
eligible, err := pkg.isEligible(ctx)
|
||||
if err != nil {
|
||||
log.Infof("Unable to determine status for package %s: %v", pkg.Pkgbase, err)
|
||||
b.repoPurge[pkg.FullRepo] <- []*ProtoPackage{pkg}
|
||||
continue
|
||||
}
|
||||
if !eligible {
|
||||
log.Debugf("skipped package %s (%v)", pkg.Pkgbase, err)
|
||||
|
@@ -698,9 +698,19 @@ func (p *ProtoPackage) findPkgFiles() error {
|
||||
return err
|
||||
}
|
||||
|
||||
if p.DbPackage == nil && p.Srcinfo == nil {
|
||||
return fmt.Errorf("unable to find pkgfiles without dbpkg or srcinfo present")
|
||||
}
|
||||
|
||||
var realPkgs []string
|
||||
for _, realPkg := range p.DbPackage.Packages {
|
||||
realPkgs = append(realPkgs, realPkg)
|
||||
if p.DbPackage != nil {
|
||||
for _, realPkg := range p.DbPackage.Packages {
|
||||
realPkgs = append(realPkgs, realPkg)
|
||||
}
|
||||
} else {
|
||||
for _, realPkg := range p.Srcinfo.Packages {
|
||||
realPkgs = append(realPkgs, realPkg.Pkgname)
|
||||
}
|
||||
}
|
||||
|
||||
var fPkg []string
|
||||
|
19
utils.go
19
utils.go
@@ -256,12 +256,13 @@ func genQueue(path string) ([]*ProtoPackage, error) {
|
||||
}
|
||||
|
||||
pkgbuilds = append(pkgbuilds, &ProtoPackage{
|
||||
Pkgbuild: pkgbuild,
|
||||
Pkgbase: mPkgbuild.PkgBase(),
|
||||
Repo: dbpackage.Repository(mPkgbuild.Repo()),
|
||||
March: march,
|
||||
FullRepo: mPkgbuild.Repo() + "-" + march,
|
||||
Hash: b3s,
|
||||
Pkgbuild: pkgbuild,
|
||||
Pkgbase: mPkgbuild.PkgBase(),
|
||||
Repo: dbpackage.Repository(mPkgbuild.Repo()),
|
||||
March: march,
|
||||
FullRepo: mPkgbuild.Repo() + "-" + march,
|
||||
Hash: b3s,
|
||||
DbPackage: dbPkg,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -587,6 +588,12 @@ func housekeeping(repo string, march string, wg *sync.WaitGroup) error {
|
||||
}
|
||||
buildManager.repoPurge[fullRepo] <- []*ProtoPackage{pkg}
|
||||
}
|
||||
} else if dbPkg.Status == dbpackage.StatusLatest && dbPkg.RepoVersion == "" {
|
||||
log.Infof("[HK] reseting missing package %s with no repo version", dbPkg.Pkgbase)
|
||||
err = dbPkg.Update().SetStatus(dbpackage.StatusQueued).ClearHash().ClearRepoVersion().Exec(context.Background())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user