summaryrefslogtreecommitdiff
path: root/godep.helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'godep.helpers.go')
-rw-r--r--godep.helpers.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/godep.helpers.go b/godep.helpers.go
new file mode 100644
index 0000000..007cc61
--- /dev/null
+++ b/godep.helpers.go
@@ -0,0 +1,57 @@
+package gitpb
+
+// this is becoming a standard format
+// todo: autogenerate this from the .proto file?
+
+import (
+ "time"
+)
+
+func (repo *Repo) DeleteGoDepByHash(hash string) *GoDep {
+ refslock.Lock()
+ defer refslock.Unlock()
+
+ for i, _ := range repo.GoDeps {
+ if repo.GoDeps[i].Hash == hash {
+ repo.GoDeps[i] = repo.GoDeps[len(repo.GoDeps)-1]
+ repo.GoDeps = repo.GoDeps[:len(repo.GoDeps)-1]
+ return nil
+ }
+ }
+ return nil
+}
+
+// enforces no duplicate package names
+func (repo *Repo) AppendGoDep(newP *GoDep) bool {
+ refslock.Lock()
+ defer refslock.Unlock()
+
+ for _, p := range repo.GoDeps {
+ if p.GoPath == newP.GoPath {
+ return false
+ }
+ }
+
+ repo.GoDeps = append(repo.GoDeps, newP)
+ return true
+}
+
+// returns time.Duration since last scan of go.sum & go.mod
+func (repo *Repo) AgeGoDep() time.Duration {
+ t := time.Since(repo.LastGoDep.AsTime())
+ return t
+}
+
+// find a dependancy by the go path
+func (repo *Repo) FindGoDepByPath(gopath string) *GoDep {
+ refslock.RLock()
+ defer refslock.RUnlock()
+
+ for _, p := range repo.GoDeps {
+ if p.GoPath == gopath {
+ return p
+ }
+ }
+
+ return nil
+}