Skip to content

Commit 900693b

Browse files
committed
Implement the -release flag to list all available releases
1 parent c72859f commit 900693b

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

cmd/rke2diff/main.go

+31-7
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
type rke2diffOptions struct {
1919
version bool
2020
rke2Versions rkeVersionSlice
21-
showReleases bool
21+
releases bool
2222
}
2323

2424
type GitHubProject struct {
@@ -52,19 +52,16 @@ const (
5252
func main() {
5353
var rke2diffOpts rke2diffOptions
5454
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.")
5757
flag.Parse()
5858

5959
if rke2diffOpts.version {
6060
fmt.Println(buildinfo.Get())
6161
os.Exit(0)
6262
}
6363

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 {
6865
log.Fatal("only two RKE2 versions can be compared")
6966
}
7067

@@ -78,6 +75,33 @@ func main() {
7875

7976
ctx := context.Background()
8077

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+
81105
// TODO: Use response to tell user how many GH API calls can be done before hitting the rate limit
82106
releases, _, err := ghClient.Repositories.ListReleases(ctx, project.Owner, project.Repo, &github.ListOptions{
83107
PerPage: 1000,

0 commit comments

Comments
 (0)