summaryrefslogtreecommitdiff
path: root/godep.sort.go
diff options
context:
space:
mode:
Diffstat (limited to 'godep.sort.go')
-rw-r--r--godep.sort.go99
1 files changed, 0 insertions, 99 deletions
diff --git a/godep.sort.go b/godep.sort.go
deleted file mode 100644
index ead6e59..0000000
--- a/godep.sort.go
+++ /dev/null
@@ -1,99 +0,0 @@
-package gitpb
-
-// this is becoming a standard format
-// todo: autogenerate this from the .proto file?
-
-import (
- "fmt"
- "os"
- "sort"
- sync "sync"
-)
-
-// bad global lock until I figure out some other plan
-var godeplock sync.RWMutex
-
-type GoDepIterator struct {
- sync.RWMutex
-
- packs []*GoDep
- index int
-}
-
-// NewGoDepGoDepIterator initializes a new iterator.
-func NewGoDepIterator(packs []*GoDep) *GoDepIterator {
- return &GoDepIterator{packs: packs}
-}
-
-// Scan moves to the next element and returns false if there are no more packs.
-func (it *GoDepIterator) Scan() bool {
- if it.index >= len(it.packs) {
- return false
- }
- it.index++
- return true
-}
-
-// GoDep returns the current repo.
-func (it *GoDepIterator) GoDep() *GoDep {
- if it.packs[it.index-1] == nil {
- for i, d := range it.packs {
- fmt.Println("i =", i, d)
- }
- fmt.Println("len =", len(it.packs))
- fmt.Println("repo == nil", it.index, it.index-1)
- os.Exit(-1)
- }
- return it.packs[it.index-1]
-}
-
-// Use Scan() in a loop, similar to a while loop
-//
-// for iterator.Scan() {
-// d := iterator.GoDep()
-// fmt.Println("GoDep UUID:", d.Uuid)
-// }
-
-func (r *Repo) AllGoDeps() *GoDepIterator {
- repoPointers := r.selectAllGoDeps()
-
- iterator := NewGoDepIterator(repoPointers)
- return iterator
-}
-
-func (r *Repo) SortGoDepsByName() *GoDepIterator {
- packs := r.selectAllGoDeps()
-
- sort.Sort(GoDepByPath(packs))
-
- iterator := NewGoDepIterator(packs)
- return iterator
-}
-
-func (repo *Repo) Len() int {
- refslock.RLock()
- defer refslock.RUnlock()
-
- return len(repo.GoDeps)
-}
-
-type GoDepByPath []*GoDep
-
-func (a GoDepByPath) Len() int { return len(a) }
-func (a GoDepByPath) Less(i, j int) bool { return a[i].GoPath < a[j].GoPath }
-func (a GoDepByPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
-
-// safely returns a slice of pointers to the GoDep protobufs
-func (r *Repo) selectAllGoDeps() []*GoDep {
- refslock.RLock()
- defer refslock.RUnlock()
-
- // Create a new slice to hold pointers to each GoDep
- var allPacks []*GoDep
- allPacks = make([]*GoDep, len(r.GoDeps))
- for i, p := range r.GoDeps {
- allPacks[i] = p // Copy pointers for safe iteration
- }
-
- return allPacks
-}