prefetch complete

This commit is contained in:
2026-05-23 20:12:13 -06:00
parent 49b9307853
commit 5ca42e11cd
3 changed files with 113 additions and 8 deletions
+23 -4
View File
@@ -3,6 +3,7 @@ package repomaint
import (
"log/slog"
"os"
"path/filepath"
"github.com/ewpt3ch/pkgstash/internal/cache"
)
@@ -42,16 +43,34 @@ func (r *RepoSync) Sync() error {
for _, repo := range r.repos {
// create map of pkgname to filenames from current db
cachedPkgs, err := r.buildMap(repo)
slog.Warn("failed to read current db", "err", err)
if err != nil {
slog.Warn("failed to read current db", "err", err)
return err
}
// call cache db fetch
if err := r.c.FetchDB(); err != nil {
return err
}
}
// compare and fetch
// pkgsToUpdate slice contains relative paths like
// <repo>/os/<arch>/filename
pkgsToUpdate, err := r.updatablePkgs(repo, cachedPkgs)
if err != nil {
slog.Warn("failed to get updatable pkgs list", "err", err)
return err
}
// call cache cleanup
for _, fileName := range pkgsToUpdate {
path := filepath.Join(repo, repoArch, fileName)
_, err := r.c.Fetch(path)
if err != nil {
slog.Warn("failed to update pkg", "pkg", fileName, "err", err)
}
}
// call cache cleanup
}
return nil
}