58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package gitpb
|
|
|
|
import (
|
|
"sort"
|
|
"time"
|
|
)
|
|
|
|
/*
|
|
// todo: probably switch to using slices. new things added in 1.23
|
|
// https://pkg.go.dev/slices
|
|
|
|
func (all *GitTags) newSort() *GitTagIterator {
|
|
slices.SortFunc(all.GitTags, func(a, b *GitTag) int {
|
|
if n := strings.Compare(a.Name, b.Name); n != 0 {
|
|
return n
|
|
}
|
|
// If names are equal, order by age
|
|
return cmp.Compare(a.Age, b.Age)
|
|
})
|
|
}
|
|
*/
|
|
|
|
// all this code below is junk and seamingly wrong
|
|
|
|
func (all *GitTags) SortByAge() *GitTagIterator {
|
|
packs := all.selectAllGitTag()
|
|
|
|
sort.Sort(GitTagAge(packs))
|
|
|
|
iterator := NewGitTagIterator(packs)
|
|
return iterator
|
|
}
|
|
|
|
type GitTagAge []*GitTag
|
|
|
|
func (a GitTagAge) Len() int { return len(a) }
|
|
|
|
// sorts in ? order
|
|
func (a GitTagAge) Less(i, j int) bool {
|
|
if time.Since(a[i].Authordate.AsTime()) < time.Since(a[j].Authordate.AsTime()) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
func (a GitTagAge) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
|
|
func (repo *Repo) NewestAge() time.Duration {
|
|
return time.Since(repo.Times.NewestCommit.AsTime())
|
|
/*
|
|
all := repo.Tags.SortByAge()
|
|
for all.Scan() {
|
|
r := all.Next()
|
|
return time.Since(r.GetAuthordate().AsTime())
|
|
}
|
|
return time.Since(time.Now())
|
|
*/
|
|
}
|