forked from ALHP/ALHP.GO
fixed some minor problems with new package moving
This commit is contained in:
7
main.go
7
main.go
@@ -216,9 +216,8 @@ func (b *BuildManager) buildWorker(id int, march string) {
|
|||||||
for _, file := range pkgFiles {
|
for _, file := range pkgFiles {
|
||||||
cmd = exec.Command("gpg", "--batch", "--detach-sign", file)
|
cmd = exec.Command("gpg", "--batch", "--detach-sign", file)
|
||||||
res, err := cmd.CombinedOutput()
|
res, err := cmd.CombinedOutput()
|
||||||
log.Debug(string(res))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warningf("Failed to sign %s: %s", pkg.Pkgbase, err)
|
log.Warningf("Failed to sign %s (%s): %s", pkg.Pkgbase, err, string(res))
|
||||||
b.buildWG.Done()
|
b.buildWG.Done()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -228,7 +227,7 @@ func (b *BuildManager) buildWorker(id int, march string) {
|
|||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
for _, file := range copyFiles {
|
for _, file := range copyFiles {
|
||||||
check(os.MkdirAll(filepath.Join(conf.Basedir.Work, waitingDir, pkg.FullRepo), 755))
|
check(os.MkdirAll(filepath.Join(conf.Basedir.Work, waitingDir, pkg.FullRepo), 0755))
|
||||||
_, err = copyFile(file, filepath.Join(conf.Basedir.Work, waitingDir, pkg.FullRepo, filepath.Base(file)))
|
_, err = copyFile(file, filepath.Join(conf.Basedir.Work, waitingDir, pkg.FullRepo, filepath.Base(file)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
check(err)
|
check(err)
|
||||||
@@ -744,12 +743,14 @@ func (b *BuildManager) syncWorker() {
|
|||||||
b.parseWG.Wait()
|
b.parseWG.Wait()
|
||||||
b.buildWG.Wait()
|
b.buildWG.Wait()
|
||||||
|
|
||||||
|
if !b.exit {
|
||||||
for _, repo := range repos {
|
for _, repo := range repos {
|
||||||
err = movePackagesLive(repo)
|
err = movePackagesLive(repo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("[%s] Error moving packages live: %v", repo, err)
|
log.Errorf("[%s] Error moving packages live: %v", repo, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
time.Sleep(time.Duration(*checkInterval) * time.Minute)
|
time.Sleep(time.Duration(*checkInterval) * time.Minute)
|
||||||
}
|
}
|
||||||
|
21
utils.go
21
utils.go
@@ -415,6 +415,15 @@ func (p *BuildPackage) prepareKernelPatches() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func movePackagesLive(fullRepo string) error {
|
func movePackagesLive(fullRepo string) error {
|
||||||
|
// make sure no old builds get moved
|
||||||
|
cmd := exec.Command("paccache", "-rc", filepath.Join(conf.Basedir.Work, waitingDir, fullRepo), "-k", "1")
|
||||||
|
res, err := cmd.CombinedOutput()
|
||||||
|
log.Debug(string(res))
|
||||||
|
check(err)
|
||||||
|
|
||||||
|
march := strings.Join(strings.Split(fullRepo, "-")[1:], "-")
|
||||||
|
repo := strings.Split(fullRepo, "-")[0]
|
||||||
|
|
||||||
pkgFiles, err := filepath.Glob(filepath.Join(conf.Basedir.Work, waitingDir, fullRepo, "*.pkg.tar.zst"))
|
pkgFiles, err := filepath.Glob(filepath.Join(conf.Basedir.Work, waitingDir, fullRepo, "*.pkg.tar.zst"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -424,7 +433,7 @@ func movePackagesLive(fullRepo string) error {
|
|||||||
|
|
||||||
for _, file := range pkgFiles {
|
for _, file := range pkgFiles {
|
||||||
pkg := Package(file)
|
pkg := Package(file)
|
||||||
dbpkg, err := pkg.DBPackage()
|
dbpkg, err := pkg.DBPackageIsolated(march, dbpackage.Repository(repo))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -698,12 +707,16 @@ func setupChroot() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (path *Package) DBPackage() (*ent.DbPackage, error) {
|
func (path *Package) DBPackage() (*ent.DbPackage, error) {
|
||||||
|
return path.DBPackageIsolated(path.MArch(), path.Repo())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (path *Package) DBPackageIsolated(march string, repo dbpackage.Repository) (*ent.DbPackage, error) {
|
||||||
dbPkg, err := db.DbPackage.Query().Where(func(s *sql.Selector) {
|
dbPkg, err := db.DbPackage.Query().Where(func(s *sql.Selector) {
|
||||||
s.Where(
|
s.Where(
|
||||||
sql.And(
|
sql.And(
|
||||||
sqljson.ValueContains(dbpackage.FieldPackages, path.Name()),
|
sqljson.ValueContains(dbpackage.FieldPackages, path.Name()),
|
||||||
sql.EQ(dbpackage.FieldMarch, path.MArch()),
|
sql.EQ(dbpackage.FieldMarch, march),
|
||||||
sql.EQ(dbpackage.FieldRepository, path.Repo())),
|
sql.EQ(dbpackage.FieldRepository, repo)),
|
||||||
)
|
)
|
||||||
}).Only(context.Background())
|
}).Only(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -807,7 +820,7 @@ func housekeeping(repo string, wg *sync.WaitGroup) error {
|
|||||||
repoVer, err := pkg.repoVersion()
|
repoVer, err := pkg.repoVersion()
|
||||||
if err == nil && alpm.VerCmp(repoVer, dbPkg.RepoVersion) != 0 {
|
if err == nil && alpm.VerCmp(repoVer, dbPkg.RepoVersion) != 0 {
|
||||||
log.Infof("[HK/%s/%s] update %s->%s in db", pkg.FullRepo, pkg.Pkgbase, dbPkg.RepoVersion, repoVer)
|
log.Infof("[HK/%s/%s] update %s->%s in db", pkg.FullRepo, pkg.Pkgbase, dbPkg.RepoVersion, repoVer)
|
||||||
pkg.DbPackage, err = pkg.DbPackage.Update().SetRepoVersion(repoVer).Save(context.Background())
|
pkg.DbPackage, err = pkg.DbPackage.Update().SetRepoVersion(repoVer).ClearHash().Save(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user