Documentation ¶
Overview ¶
Package version is a convenience utility that provides SDK consumers with a ready-to-use version command that produces apps versioning information based on flags passed at compile time.
Configure the version command ¶
The version command can be just added to your cobra root command. At build time, the variables Name, Version, Commit, and BuildTags can be passed as build flags as shown in the following example:
go build -X github.com/ayher/anatha/version.Name=gaia \ -X github.com/ayher/anatha/version.ServerName=gaiad \ -X github.com/ayher/anatha/version.ClientName=gaiacli \ -X github.com/ayher/anatha/version.Version=1.0 \ -X github.com/ayher/anatha/version.Commit=f0f7b7dab7e36c20b757cebce0e8f4fc5b95de60 \ -X "github.com/ayher/anatha/version.BuildTags=linux darwin amd64"
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // application's name Name = "" // server binary name ServerName = "<appd>" // client binary name ClientName = "<appcli>" // application's version string Version = "" // commit Commit = "" // build tags BuildTags = "" )
View Source
var Cmd = &cobra.Command{ Use: "version", Short: "Print the app version", RunE: func(_ *cobra.Command, _ []string) error { verInfo := NewInfo() if !viper.GetBool(flagLong) { fmt.Println(verInfo.Version) return nil } var bz []byte var err error switch viper.GetString(cli.OutputFlag) { case "json": bz, err = json.Marshal(verInfo) default: bz, err = yaml.Marshal(&verInfo) } if err != nil { return err } _, err = fmt.Println(string(bz)) return err }, }
Cmd prints out the application's version information passed via build flags.
Functions ¶
This section is empty.
Types ¶
type Info ¶
type Info struct { Name string `json:"name" yaml:"name"` ServerName string `json:"server_name" yaml:"server_name"` ClientName string `json:"client_name" yaml:"client_name"` Version string `json:"version" yaml:"version"` GitCommit string `json:"commit" yaml:"commit"` BuildTags string `json:"build_tags" yaml:"build_tags"` GoVersion string `json:"go" yaml:"go"` }
Info defines the application version information.
Click to show internal directories.
Click to hide internal directories.