Add runtime version reporting
This commit is contained in:
23
cmd/releasekit/main.go
Normal file
23
cmd/releasekit/main.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo"
|
||||
)
|
||||
|
||||
func main() {
|
||||
os.Exit(run(os.Args[1:], os.Stdout, os.Stderr))
|
||||
}
|
||||
|
||||
func run(args []string, stdout, stderr io.Writer) int {
|
||||
if len(args) == 1 && args[0] == "version" {
|
||||
fmt.Fprintf(stdout, "releasekit %s\n", buildinfo.Version())
|
||||
return 0
|
||||
}
|
||||
|
||||
fmt.Fprintln(stderr, "usage: releasekit version")
|
||||
return 2
|
||||
}
|
||||
35
cmd/releasekit/main_test.go
Normal file
35
cmd/releasekit/main_test.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"gitea.maximumdirect.net/eric/ReleaseKit/buildinfo"
|
||||
)
|
||||
|
||||
func TestVersionCommand(t *testing.T) {
|
||||
var stdout, stderr bytes.Buffer
|
||||
if status := run([]string{"version"}, &stdout, &stderr); status != 0 {
|
||||
t.Fatalf("run() status = %d, want 0; stderr = %q", status, stderr.String())
|
||||
}
|
||||
if want := fmt.Sprintf("releasekit %s\n", buildinfo.Version()); stdout.String() != want {
|
||||
t.Fatalf("version output = %q, want %q", stdout.String(), want)
|
||||
}
|
||||
if stderr.Len() != 0 {
|
||||
t.Fatalf("version command wrote to stderr: %q", stderr.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnknownCommand(t *testing.T) {
|
||||
var stdout, stderr bytes.Buffer
|
||||
if status := run([]string{"publish"}, &stdout, &stderr); status != 2 {
|
||||
t.Fatalf("run() status = %d, want 2", status)
|
||||
}
|
||||
if stdout.Len() != 0 {
|
||||
t.Fatalf("unknown command wrote to stdout: %q", stdout.String())
|
||||
}
|
||||
if want := "usage: releasekit version\n"; stderr.String() != want {
|
||||
t.Fatalf("usage output = %q, want %q", stderr.String(), want)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user