Files

57 lines
1.1 KiB
Go
Raw Permalink Normal View History

2026-05-31 01:47:39 +00:00
package cli
import (
"context"
"fmt"
"io"
"gitea.maximumdirect.net/eric/distributor/internal/app"
)
func versionCommand(_ context.Context, args []string, stdout, stderr io.Writer) int {
if hasHelp(args) {
printVersionHelp(stdout)
return exitOK
}
2026-06-04 00:45:12 +00:00
flags := newFlagSet("version", stderr)
formatFlag := addFormatFlag(flags)
if err := flags.Parse(args); err != nil {
2026-05-31 01:47:39 +00:00
return exitUsage
}
if rejectExtraArgs(stderr, "version", flags.Args()) {
return exitUsage
}
format, ok := parseOutputFormat(stderr, "version", *formatFlag)
if !ok {
return exitUsage
}
if app.IsJSONOutput(format) {
err := app.WriteJSONEnvelope(stdout, "version", true, nil, versionResult{
Application: app.Name,
Version: app.Version,
}, nil)
if err != nil {
return fail(stderr, err)
}
return exitOK
}
2026-05-31 01:47:39 +00:00
fmt.Fprintln(stdout, app.VersionString())
return exitOK
}
type versionResult struct {
Application string `json:"application"`
Version string `json:"version"`
}
2026-05-31 01:47:39 +00:00
func printVersionHelp(w io.Writer) {
fmt.Fprint(w, `Usage:
distributor version [--format text|json]
Options:
--format text|json Output format
2026-05-31 01:47:39 +00:00
Print version information.
`)
}