mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00

BuildOrigin is a field that can be set at build time by packagers. This helps us trace how and where the binary was built and installed from, allowing us to see if the issue is due to a specfic installation or a general podman bug. This field shows up in podman version and in podman info when populated. Note that podman info has a new field, Client, that only appears when running podman info using the remote client. Automatically set the BuildOrigin field when building the macOS pkginstaller to pkginstaller. Usage: make podman-remote BUILD_ORIGIN="mypackaging" Signed-off-by: Ashley Cui <acui@redhat.com>
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package define
|
|
|
|
import (
|
|
"runtime"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/containers/podman/v5/version"
|
|
)
|
|
|
|
// Overwritten at build time
|
|
var (
|
|
// GitCommit is the commit that the binary is being built from.
|
|
// It will be populated by the Makefile.
|
|
gitCommit string
|
|
// BuildInfo is the time at which the binary was built
|
|
// It will be populated by the Makefile.
|
|
buildInfo string
|
|
// BuildOrigin is the packager of the binary.
|
|
// It will be populated at build-time.
|
|
buildOrigin string
|
|
)
|
|
|
|
// Version is an output struct for API
|
|
type Version struct {
|
|
APIVersion string
|
|
Version string
|
|
GoVersion string
|
|
GitCommit string
|
|
BuiltTime string
|
|
Built int64
|
|
BuildOrigin string `json:",omitempty" yaml:",omitempty"`
|
|
OsArch string
|
|
Os string
|
|
}
|
|
|
|
// GetVersion returns a VersionOutput struct for API and podman
|
|
func GetVersion() (Version, error) {
|
|
var err error
|
|
var buildTime int64
|
|
if buildInfo != "" {
|
|
// Converts unix time from string to int64
|
|
buildTime, err = strconv.ParseInt(buildInfo, 10, 64)
|
|
|
|
if err != nil {
|
|
return Version{}, err
|
|
}
|
|
}
|
|
return Version{
|
|
APIVersion: version.APIVersion[version.Libpod][version.CurrentAPI].String(),
|
|
Version: version.Version.String(),
|
|
GoVersion: runtime.Version(),
|
|
GitCommit: gitCommit,
|
|
BuiltTime: time.Unix(buildTime, 0).Format(time.ANSIC),
|
|
Built: buildTime,
|
|
BuildOrigin: buildOrigin,
|
|
OsArch: runtime.GOOS + "/" + runtime.GOARCH,
|
|
Os: runtime.GOOS,
|
|
}, nil
|
|
}
|