diff options
Diffstat (limited to 'gitTag.byAge.go')
| -rw-r--r-- | gitTag.byAge.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gitTag.byAge.go b/gitTag.byAge.go new file mode 100644 index 0000000..9d62acf --- /dev/null +++ b/gitTag.byAge.go @@ -0,0 +1,31 @@ +package gitpb + +// runs git, parses output +// types faster than you can + +import ( + "sort" + "time" +) + +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] } |
