52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Authors of K9s
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/derailed/k9s/internal/color"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func versionCmd() *cobra.Command {
|
|
var short bool
|
|
|
|
command := cobra.Command{
|
|
Use: "version",
|
|
Short: "Print version/build info",
|
|
Long: "Print version/build information",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
printVersion(short)
|
|
},
|
|
}
|
|
|
|
command.PersistentFlags().BoolVarP(&short, "short", "s", false, "Prints K9s version info in short format")
|
|
|
|
return &command
|
|
}
|
|
|
|
func printVersion(short bool) {
|
|
const fmat = "%-20s %s\n"
|
|
var outputColor color.Paint
|
|
|
|
if short {
|
|
outputColor = -1
|
|
} else {
|
|
outputColor = color.Cyan
|
|
printLogo(outputColor)
|
|
}
|
|
printTuple(fmat, "Version", version, outputColor)
|
|
printTuple(fmat, "Commit", commit, outputColor)
|
|
printTuple(fmat, "Date", date, outputColor)
|
|
}
|
|
|
|
func printTuple(fmat, section, value string, outputColor color.Paint) {
|
|
if outputColor != -1 {
|
|
fmt.Fprintf(out, fmat, color.Colorize(section+":", outputColor), value)
|
|
return
|
|
}
|
|
fmt.Fprintf(out, fmat, section, value)
|
|
}
|