mirror of
https://github.com/taigrr/yq
synced 2025-01-18 04:53:17 -08:00
Although printing the string as a yaml block can be argued to be technically correct, in practical terms it's more useful to just print out the multiline string as is.
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// The git commit that was compiled. This will be filled in by the compiler.
|
|
var (
|
|
GitCommit string
|
|
GitDescribe string
|
|
|
|
// Version is main version number that is being run at the moment.
|
|
Version = "1.14.1"
|
|
|
|
// VersionPrerelease is a pre-release marker for the version. If this is "" (empty string)
|
|
// then it means that it is a final release. Otherwise, this is a pre-release
|
|
// such as "dev" (in development), "beta", "rc1", etc.
|
|
VersionPrerelease = ""
|
|
)
|
|
|
|
// ProductName is the name of the product
|
|
const ProductName = "yaml"
|
|
|
|
// GetVersionDisplay composes the parts of the version in a way that's suitable
|
|
// for displaying to humans.
|
|
func GetVersionDisplay() string {
|
|
return fmt.Sprintf("%s version %s\n", ProductName, getHumanVersion())
|
|
}
|
|
|
|
func getHumanVersion() string {
|
|
version := Version
|
|
if GitDescribe != "" {
|
|
version = GitDescribe
|
|
}
|
|
|
|
release := VersionPrerelease
|
|
if release != "" {
|
|
if !strings.Contains(version, release) {
|
|
version += fmt.Sprintf("-%s", release)
|
|
}
|
|
if GitCommit != "" {
|
|
version += fmt.Sprintf(" (%s)", GitCommit)
|
|
}
|
|
}
|
|
|
|
// Strip off any single quotes added by the git information.
|
|
return strings.Replace(version, "'", "", -1)
|
|
}
|