diff options
Diffstat (limited to 'libpod/version.go')
-rw-r--r-- | libpod/version.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/libpod/version.go b/libpod/version.go new file mode 100644 index 000000000..9bc4fe616 --- /dev/null +++ b/libpod/version.go @@ -0,0 +1,50 @@ +package libpod + +import ( + "runtime" + "strconv" + + "github.com/projectatomic/libpod/cmd/podman/ioprojectatomicpodman" + podmanVersion "github.com/projectatomic/libpod/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 +) + +//Version is an output struct for varlink +type Version struct { + ioprojectatomicpodman.VarlinkInterface + Version string + GoVersion string + GitCommit string + Built int64 + OsArch string +} + +// GetVersion returns a VersionOutput struct for varlink 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{ + Version: podmanVersion.Version, + GoVersion: runtime.Version(), + GitCommit: GitCommit, + Built: buildTime, + OsArch: runtime.GOOS + "/" + runtime.GOARCH, + }, nil +} |