Merge pull request #607 from umohnani8/master
Add version command to kpod
This commit is contained in:
commit
b9c1d58b36
7 changed files with 107 additions and 2 deletions
7
Makefile
7
Makefile
|
@ -14,6 +14,9 @@ ETCDIR_CRIO ?= ${ETCDIR}/crio
|
||||||
BUILDTAGS := selinux seccomp $(shell hack/btrfs_tag.sh) $(shell hack/libdm_tag.sh)
|
BUILDTAGS := selinux seccomp $(shell hack/btrfs_tag.sh) $(shell hack/libdm_tag.sh)
|
||||||
BASHINSTALLDIR=${PREFIX}/share/bash-completion/completions
|
BASHINSTALLDIR=${PREFIX}/share/bash-completion/completions
|
||||||
|
|
||||||
|
GIT_COMMIT := $(shell git rev-parse --short HEAD)
|
||||||
|
BUILD_INFO := $(shell date +%s)
|
||||||
|
|
||||||
# If GOPATH not specified, use one in the local directory
|
# If GOPATH not specified, use one in the local directory
|
||||||
ifeq ($(GOPATH),)
|
ifeq ($(GOPATH),)
|
||||||
export GOPATH := $(CURDIR)/_output
|
export GOPATH := $(CURDIR)/_output
|
||||||
|
@ -25,6 +28,8 @@ GOPKGBASEDIR := $(shell dirname "$(GOPKGDIR)")
|
||||||
# Update VPATH so make finds .gopathok
|
# Update VPATH so make finds .gopathok
|
||||||
VPATH := $(VPATH):$(GOPATH)
|
VPATH := $(VPATH):$(GOPATH)
|
||||||
|
|
||||||
|
LDFLAGS := -ldflags '-X main.gitCommit=${GIT_COMMIT} -X main.buildInfo=${BUILD_INFO}'
|
||||||
|
|
||||||
all: binaries crio.conf docs
|
all: binaries crio.conf docs
|
||||||
|
|
||||||
default: help
|
default: help
|
||||||
|
@ -77,7 +82,7 @@ crioctl: .gopathok $(shell hack/find-godeps.sh $(GOPKGDIR) cmd/crioctl $(PROJECT
|
||||||
$(GO) build -o $@ $(PROJECT)/cmd/crioctl
|
$(GO) build -o $@ $(PROJECT)/cmd/crioctl
|
||||||
|
|
||||||
kpod: .gopathok $(shell hack/find-godeps.sh $(GOPKGDIR) cmd/kpod $(PROJECT))
|
kpod: .gopathok $(shell hack/find-godeps.sh $(GOPKGDIR) cmd/kpod $(PROJECT))
|
||||||
$(GO) build -o $@ $(PROJECT)/cmd/kpod
|
$(GO) build $(LDFLAGS) -o $@ $(PROJECT)/cmd/kpod
|
||||||
|
|
||||||
crio.conf: crio
|
crio.conf: crio
|
||||||
./crio --config="" config --default > crio.conf
|
./crio --config="" config --default > crio.conf
|
||||||
|
|
|
@ -7,14 +7,18 @@ import (
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//Version of kpod
|
||||||
|
const Version string = "0.0.1"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := cli.NewApp()
|
app := cli.NewApp()
|
||||||
app.Name = "kpod"
|
app.Name = "kpod"
|
||||||
app.Usage = "manage pods and images"
|
app.Usage = "manage pods and images"
|
||||||
app.Version = "0.0.1"
|
app.Version = Version
|
||||||
|
|
||||||
app.Commands = []cli.Command{
|
app.Commands = []cli.Command{
|
||||||
launchCommand,
|
launchCommand,
|
||||||
|
versionCommand,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Run(os.Args); err != nil {
|
if err := app.Run(os.Args); err != nil {
|
||||||
|
|
43
cmd/kpod/version.go
Normal file
43
cmd/kpod/version.go
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"runtime"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/urfave/cli"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Overwritten at build time
|
||||||
|
var (
|
||||||
|
gitCommit string
|
||||||
|
buildInfo string
|
||||||
|
)
|
||||||
|
|
||||||
|
// versionCmd gets and prints version info for version command
|
||||||
|
func versionCmd(c *cli.Context) error {
|
||||||
|
|
||||||
|
// Converts unix time from string to int64
|
||||||
|
buildTime, err := strconv.ParseInt(buildInfo, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Version: ", Version)
|
||||||
|
fmt.Println("Go Version: ", runtime.Version())
|
||||||
|
fmt.Println("Git Commit: ", gitCommit)
|
||||||
|
|
||||||
|
// Prints out the build time in readable format
|
||||||
|
fmt.Println("Built: ", time.Unix(buildTime, 0).Format(time.ANSIC))
|
||||||
|
fmt.Println("OS/Arch: ", runtime.GOOS+"/"+runtime.GOARCH)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cli command to print out the full version of kpod
|
||||||
|
var versionCommand = cli.Command{
|
||||||
|
Name: "version",
|
||||||
|
Usage: "Display the KPOD Version Information",
|
||||||
|
Action: versionCmd,
|
||||||
|
}
|
|
@ -27,6 +27,14 @@ _kpod_launch() {
|
||||||
_complete_ "$options_with_args" "$boolean_options"
|
_complete_ "$options_with_args" "$boolean_options"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_kpod_version() {
|
||||||
|
local options_with_args="
|
||||||
|
"
|
||||||
|
local boolean_options="
|
||||||
|
"
|
||||||
|
_complete_ "$options_with_args" "$boolean_options"
|
||||||
|
}
|
||||||
|
|
||||||
_kpod_kpod() {
|
_kpod_kpod() {
|
||||||
local options_with_args="
|
local options_with_args="
|
||||||
"
|
"
|
||||||
|
@ -36,6 +44,7 @@ _kpod_kpod() {
|
||||||
"
|
"
|
||||||
commands="
|
commands="
|
||||||
launch
|
launch
|
||||||
|
version
|
||||||
"
|
"
|
||||||
|
|
||||||
case "$prev" in
|
case "$prev" in
|
||||||
|
|
33
docs/kpod-version.1.md
Normal file
33
docs/kpod-version.1.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
% kpod(8) # kpod-version - Simple tool to view version information
|
||||||
|
% Dan Walsh
|
||||||
|
% SEPTEMBER 2016
|
||||||
|
# NAME
|
||||||
|
kpod-version - Display the KPOD Version Information
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**kpod version**
|
||||||
|
[**--help**|**-h**]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
Shows the the following information: Version, Go Version, Git Commit, Build Time,
|
||||||
|
OS, and Architecture.
|
||||||
|
|
||||||
|
**kpod [GLOBAL OPTIONS]**
|
||||||
|
|
||||||
|
**kpod [GLOBAL OPTIONS] version [OPTIONS]**
|
||||||
|
|
||||||
|
# GLOBAL OPTIONS
|
||||||
|
|
||||||
|
**--help, -h**
|
||||||
|
Print usage statement
|
||||||
|
|
||||||
|
# COMMANDS
|
||||||
|
|
||||||
|
## version
|
||||||
|
Display the KPOD Version Information
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
kpod(1), crio(8), crio.conf(5)
|
||||||
|
|
||||||
|
# HISTORY
|
||||||
|
Dec 2016, Originally compiled by Dan Walsh <dwalsh@redhat.com>
|
|
@ -13,6 +13,8 @@ CRIO_ROOT=${CRIO_ROOT:-$(cd "$INTEGRATION_ROOT/../.."; pwd -P)}
|
||||||
CRIO_BINARY=${CRIO_BINARY:-${CRIO_ROOT}/cri-o/crio}
|
CRIO_BINARY=${CRIO_BINARY:-${CRIO_ROOT}/cri-o/crio}
|
||||||
# Path of the crioctl binary.
|
# Path of the crioctl binary.
|
||||||
OCIC_BINARY=${OCIC_BINARY:-${CRIO_ROOT}/cri-o/crioctl}
|
OCIC_BINARY=${OCIC_BINARY:-${CRIO_ROOT}/cri-o/crioctl}
|
||||||
|
# Path to kpod binary.
|
||||||
|
KPOD_BINARY=${KPOD_BINARY:-${CRIO_ROOT}/cri-o/kpod}
|
||||||
# Path of the conmon binary.
|
# Path of the conmon binary.
|
||||||
CONMON_BINARY=${CONMON_BINARY:-${CRIO_ROOT}/cri-o/conmon/conmon}
|
CONMON_BINARY=${CONMON_BINARY:-${CRIO_ROOT}/cri-o/conmon/conmon}
|
||||||
# Path of the pause binary.
|
# Path of the pause binary.
|
||||||
|
|
9
test/kpod.bats
Normal file
9
test/kpod.bats
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load helpers
|
||||||
|
|
||||||
|
@test "kpod version test" {
|
||||||
|
run ${KPOD_BINARY} version
|
||||||
|
echo "$output"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue