@@ -18,7 +18,7 @@ import (
18
18
type rke2diffOptions struct {
19
19
version bool
20
20
rke2Versions rkeVersionSlice
21
- showReleases bool
21
+ releases bool
22
22
}
23
23
24
24
type GitHubProject struct {
@@ -52,19 +52,16 @@ const (
52
52
func main () {
53
53
var rke2diffOpts rke2diffOptions
54
54
flag .BoolVar (& rke2diffOpts .version , "version" , false , "Print the version number." )
55
- flag .BoolVar (& rke2diffOpts .showReleases , "show- releases" , false , "Show all releases." )
56
- flag .Var (& rke2diffOpts .rke2Versions , "rke2" , "RKE2 version to compare." )
55
+ flag .BoolVar (& rke2diffOpts .releases , "releases" , false , "Show all releases." )
56
+ flag .Var (& rke2diffOpts .rke2Versions , "rke2" , "RKE2 version to compare, can be set multiple times ." )
57
57
flag .Parse ()
58
58
59
59
if rke2diffOpts .version {
60
60
fmt .Println (buildinfo .Get ())
61
61
os .Exit (0 )
62
62
}
63
63
64
- if len (rke2diffOpts .rke2Versions ) == 0 {
65
- // TODO: Just output the latest release here?
66
- log .Fatal ("one RKE2 version is required" )
67
- } else if len (rke2diffOpts .rke2Versions ) > 2 {
64
+ if len (rke2diffOpts .rke2Versions ) > 2 {
68
65
log .Fatal ("only two RKE2 versions can be compared" )
69
66
}
70
67
@@ -78,6 +75,33 @@ func main() {
78
75
79
76
ctx := context .Background ()
80
77
78
+ if rke2diffOpts .releases {
79
+ releases , _ , err := ghClient .Repositories .ListReleases (ctx , project .Owner , project .Repo , & github.ListOptions {
80
+ PerPage : 1000 ,
81
+ })
82
+ if err != nil {
83
+ log .Fatal (err )
84
+ }
85
+
86
+ t := table .NewWriter ()
87
+ t .SetOutputMirror (os .Stdout )
88
+ t .SetStyle (table .StyleLight )
89
+ header := table.Row {
90
+ "Release" ,
91
+ "Published At" ,
92
+ }
93
+ t .AppendHeader (header )
94
+ t .Style ().Title .Align = text .AlignCenter
95
+
96
+ for _ , release := range releases {
97
+ t .AppendRow (table.Row {release .GetTagName (), release .GetPublishedAt ()})
98
+ }
99
+
100
+ t .Render ()
101
+
102
+ os .Exit (0 )
103
+ }
104
+
81
105
// TODO: Use response to tell user how many GH API calls can be done before hitting the rate limit
82
106
releases , _ , err := ghClient .Repositories .ListReleases (ctx , project .Owner , project .Repo , & github.ListOptions {
83
107
PerPage : 1000 ,
0 commit comments