// Package buildinfo contains build information. // // Build information should be set during compilation by passing // -ldflags "-X src.elv.sh/pkg/buildinfo.Var=value" to "go build" or // "go get".
package buildinfo import ( ) // Version identifies the version of Elvish. On development commits, it // identifies the next release. const Version = "v0.16.0" // VersionSuffix is appended to Version in the output of "elvish -version" and // "elvish -buildinfo" to build the full version string. This can be overriden // when building Elvish; see PACKAGING.md for details. var VersionSuffix = "-dev.unknown" // Reproducible identifies whether the build is reproducible. This can be // overriden when building Elvish; see PACKAGING.md for details. var Reproducible = "false" // Program is the buildinfo subprogram. var Program prog.Program = program{} type program struct{} func (program) ( *prog.Flags) bool { return .Version || .BuildInfo } func (program) ( [3]*os.File, *prog.Flags, []string) error { := Version + VersionSuffix if .Version { fmt.Fprintln([1], ) return nil } if .JSON { fmt.Fprintf([1], `{"version":%s,"goversion":%s,"reproducible":%v}`+"\n", quoteJSON(), quoteJSON(runtime.Version()), Reproducible) } else { fmt.Fprintln([1], "Version:", ) fmt.Fprintln([1], "Go version:", runtime.Version()) fmt.Fprintln([1], "Reproducible build:", Reproducible) } return nil }