From 766c2e16742d668b47320f6b228840d788b86723 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 29 Nov 2024 09:36:54 -0600 Subject: continue attempt Signed-off-by: Jeff Carr --- godep.sort | 99 -------------------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 godep.sort (limited to 'godep.sort') diff --git a/godep.sort b/godep.sort deleted file mode 100644 index ead6e59..0000000 --- a/godep.sort +++ /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 -} -- cgit v1.2.3