From 7615317ca72347429f665dc7db9a0fe49d86cc55 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 29 Nov 2024 16:23:13 -0600 Subject: always use singular Signed-off-by: Jeff Carr --- repo.helpers.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 repo.helpers.go (limited to 'repo.helpers.go') diff --git a/repo.helpers.go b/repo.helpers.go new file mode 100644 index 0000000..50f3277 --- /dev/null +++ b/repo.helpers.go @@ -0,0 +1,46 @@ +package gitpb + +// delete a gopath: +// myrepos.DeleteByPath("go.wit.com/apps/go-clone") +func (all *Repos) DeleteByPath(gopath string) *Repo { + reposMu.Lock() + defer reposMu.Unlock() + + for i, _ := range all.Repos { + if all.Repos[i].GoPath == gopath { + all.Repos[i] = all.Repos[len(all.Repos)-1] + all.Repos = all.Repos[:len(all.Repos)-1] + return nil + } + } + return nil +} + +// find a package by gopath +func (all *Repos) FindByGoPath(gopath string) *Repo { + reposMu.RLock() + defer reposMu.RUnlock() + + for _, p := range all.Repos { + if p.GoPath == gopath { + return p + } + } + + return nil +} + +// enforces no duplicate gopath's +func (all *Repos) add(newP *Repo) bool { + reposMu.Lock() + defer reposMu.Unlock() + + for _, p := range all.Repos { + if p.GoPath == newP.GoPath { + return false + } + } + + all.Repos = append(all.Repos, newP) + return true +} -- cgit v1.2.3