From 1377ef1bc95130643460e107fbe222a2130da008 Mon Sep 17 00:00:00 2001 From: Arsen Musayelyan Date: Wed, 30 Nov 2022 19:14:07 -0800 Subject: [PATCH] Remove packages from DB when removing repository --- internal/db/db.go | 4 ++-- internal/repos/pull.go | 2 +- repo.go | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/db/db.go b/internal/db/db.go index 4eafab3..1b868b8 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -60,7 +60,7 @@ func GetPkg(db *genji.DB, where string, args ...any) (*Package, error) { return out, err } -// DeletePkg deletes all packages matching the where conditions -func DeletePkg(db *genji.DB, where string, args ...any) error { +// DeletePkgs deletes all packages matching the where conditions +func DeletePkgs(db *genji.DB, where string, args ...any) error { return db.Exec("DELETE * FROM pkgs WHERE "+where, args...) } diff --git a/internal/repos/pull.go b/internal/repos/pull.go index 7c02bff..4a50814 100644 --- a/internal/repos/pull.go +++ b/internal/repos/pull.go @@ -222,7 +222,7 @@ func processRepoChanges(ctx context.Context, repo types.Repo, r *git.Repository, return err } - err = db.DeletePkg(gdb, "name = ? AND repository = ?", pkg.Name, repo.Name) + err = db.DeletePkgs(gdb, "name = ? AND repository = ?", pkg.Name, repo.Name) if err != nil { return err } diff --git a/repo.go b/repo.go index d7705ce..bc4b4eb 100644 --- a/repo.go +++ b/repo.go @@ -66,6 +66,11 @@ func addrepoCmd(c *cli.Context) error { log.Fatal("Error encoding config").Err(err).Send() } + err = repos.Pull(c.Context, gdb, cfg.Repos) + if err != nil { + log.Fatal("Error pulling repos").Err(err).Send() + } + return nil } @@ -101,6 +106,11 @@ func removerepoCmd(c *cli.Context) error { log.Fatal("Error removing repo directory").Err(err).Send() } + err = db.DeletePkgs(gdb, "repository = ?", name) + if err != nil { + log.Fatal("Error removing packages from database").Err(err).Send() + } + return nil }