48 lines
970 B
Go
48 lines
970 B
Go
|
package cmd
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"github.com/nspcc-dev/neofs-node/misc"
|
||
|
|
||
|
"github.com/spf13/cobra"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
// versionCmd represents the version command
|
||
|
versionCmd = &cobra.Command{
|
||
|
Use: "version",
|
||
|
Short: "Print version and exit",
|
||
|
Run: versionRun,
|
||
|
}
|
||
|
)
|
||
|
|
||
|
var flagJSON bool
|
||
|
|
||
|
type VersionInfo struct {
|
||
|
Version string `json:"Version,omitempty"`
|
||
|
Build string `json:"Build,omitempty"`
|
||
|
Debug string `json:"Debug,omitempty"`
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
rootCmd.AddCommand(versionCmd)
|
||
|
versionCmd.Flags().BoolVarP(&flagJSON, "json", "j", false, "Print version information in JSON")
|
||
|
}
|
||
|
|
||
|
func versionRun(cmd *cobra.Command, args []string) {
|
||
|
|
||
|
versionInfo := VersionInfo{Version: misc.Version, Build: misc.Build, Debug: misc.Debug}
|
||
|
|
||
|
if flagJSON {
|
||
|
bytes, _ := json.Marshal(versionInfo)
|
||
|
fmt.Printf("%s", string(bytes)+"\n")
|
||
|
return
|
||
|
}
|
||
|
|
||
|
fmt.Printf("Version: %s \nBuild: %s \nDebug: %s\n",
|
||
|
versionInfo.Version,
|
||
|
versionInfo.Build,
|
||
|
versionInfo.Debug)
|
||
|
}
|