diff --git a/internal/repomaint/build_map.go b/internal/repomaint/db.go similarity index 100% rename from internal/repomaint/build_map.go rename to internal/repomaint/db.go diff --git a/internal/repomaint/repomaint.go b/internal/repomaint/repomaint.go index 90f3106..ebf42da 100644 --- a/internal/repomaint/repomaint.go +++ b/internal/repomaint/repomaint.go @@ -1,6 +1,7 @@ package repomaint import ( + "log/slog" "os" "github.com/ewpt3ch/pkgstash/internal/cache" @@ -37,13 +38,20 @@ func NewRepoSync(c CacheClient, path string, repos []string) (*RepoSync, error) } func (r *RepoSync) Sync() error { - // create map of pkgname to filenames from current db - // call cache db fetch - if err := r.c.FetchDB(); err != nil { - return err + + 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) + + // call cache db fetch + if err := r.c.FetchDB(); err != nil { + return err + } + } - // create map from pkgnames in new db // compare and fetch + // call cache cleanup return nil } diff --git a/internal/repomaint/repomaint_test.go b/internal/repomaint/repomaint_test.go index 584b9d4..dd590d9 100644 --- a/internal/repomaint/repomaint_test.go +++ b/internal/repomaint/repomaint_test.go @@ -55,9 +55,10 @@ func TestCachedFiles(t *testing.T) { if err != nil { t.Fatalf("failed to create RepoMaint: %v", err) } - rs.root.MkdirAll("core/os/x86_64", 0750) + repoPath := filepath.Join("core", repoArch) + rs.root.MkdirAll(repoPath, 0750) for _, f := range testFiles { - rs.root.WriteFile(filepath.Join("core/os/x86_64", f), []byte{}, 0644) + rs.root.WriteFile(filepath.Join(repoPath, f), []byte{}, 0644) } cachedFiles, err := rs.cachedPkgs("core") @@ -81,7 +82,7 @@ func TestSyncMapBuild(t *testing.T) { if err != nil { t.Fatalf("failed to create RepoMaint: %v", err) } - repoPath := filepath.Join(rs.repos[0], "os/x86_64") + repoPath := filepath.Join(rs.repos[0], repoArch) rs.root.MkdirAll(repoPath, 0750) for _, f := range testFiles { rs.root.WriteFile(filepath.Join(repoPath, f), []byte{}, 0644) @@ -102,7 +103,7 @@ func TestSyncMapBuild(t *testing.T) { // run tests - pkgMap, err := rs.createMap(rs.repos[0]) + pkgMap, err := rs.buildMap(rs.repos[0]) if err != nil { t.Fatalf("failed to create map: %v", err) }