podman
1package define
2
3import (
4"runtime"
5"strconv"
6"time"
7
8"github.com/containers/podman/v5/version"
9)
10
11// Overwritten at build time
12var (
13// GitCommit is the commit that the binary is being built from.
14// It will be populated by the Makefile.
15gitCommit string
16// BuildInfo is the time at which the binary was built
17// It will be populated by the Makefile.
18buildInfo string
19)
20
21// Version is an output struct for API
22type Version struct {
23APIVersion string
24Version string
25GoVersion string
26GitCommit string
27BuiltTime string
28Built int64
29OsArch string
30Os string
31}
32
33// GetVersion returns a VersionOutput struct for API and podman
34func GetVersion() (Version, error) {
35var err error
36var buildTime int64
37if buildInfo != "" {
38// Converts unix time from string to int64
39buildTime, err = strconv.ParseInt(buildInfo, 10, 64)
40
41if err != nil {
42return Version{}, err
43}
44}
45return Version{
46APIVersion: version.APIVersion[version.Libpod][version.CurrentAPI].String(),
47Version: version.Version.String(),
48GoVersion: runtime.Version(),
49GitCommit: gitCommit,
50BuiltTime: time.Unix(buildTime, 0).Format(time.ANSIC),
51Built: buildTime,
52OsArch: runtime.GOOS + "/" + runtime.GOARCH,
53Os: runtime.GOOS,
54}, nil
55}
56