Merged shawnsi/git-version

This commit is contained in:
Solomon Hykes 2013-04-02 20:26:22 -07:00
commit 35c68944c7
3 changed files with 12 additions and 1 deletions

View File

@ -10,6 +10,11 @@ ifeq ($(VERBOSE), 1)
GO_OPTIONS += -v GO_OPTIONS += -v
endif endif
GIT_COMMIT = $(shell git rev-parse --short HEAD)
GIT_STATUS = $(shell test -n "`git status --porcelain`" && echo "+CHANGES")
BUILD_OPTIONS = -ldflags "-X main.GIT_COMMIT $(GIT_COMMIT)$(GIT_STATUS)"
SRC_DIR := $(GOPATH)/src SRC_DIR := $(GOPATH)/src
DOCKER_DIR := $(SRC_DIR)/$(DOCKER_PACKAGE) DOCKER_DIR := $(SRC_DIR)/$(DOCKER_PACKAGE)
@ -24,7 +29,7 @@ all: $(DOCKER_BIN)
$(DOCKER_BIN): $(DOCKER_DIR) $(DOCKER_BIN): $(DOCKER_DIR)
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@(cd $(DOCKER_MAIN); go get $(GO_OPTIONS); go build $(GO_OPTIONS) -o $@) @(cd $(DOCKER_MAIN); go get $(GO_OPTIONS); go build $(GO_OPTIONS) $(BUILD_OPTIONS) -o $@)
@echo $(DOCKER_BIN_RELATIVE) is created. @echo $(DOCKER_BIN_RELATIVE) is created.
$(DOCKER_DIR): $(DOCKER_DIR):

View File

@ -21,6 +21,8 @@ import (
const VERSION = "0.1.1" const VERSION = "0.1.1"
var GIT_COMMIT string
func (srv *Server) Name() string { func (srv *Server) Name() string {
return "docker" return "docker"
} }
@ -179,6 +181,7 @@ func (srv *Server) CmdWait(stdin io.ReadCloser, stdout io.Writer, args ...string
// 'docker version': show version information // 'docker version': show version information
func (srv *Server) CmdVersion(stdin io.ReadCloser, stdout io.Writer, args ...string) error { func (srv *Server) CmdVersion(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
fmt.Fprintf(stdout, "Version:%s\n", VERSION) fmt.Fprintf(stdout, "Version:%s\n", VERSION)
fmt.Fprintf(stdout, "Git Commit:%s\n", GIT_COMMIT)
return nil return nil
} }

View File

@ -11,6 +11,8 @@ import (
"os/signal" "os/signal"
) )
var GIT_COMMIT string
func main() { func main() {
if docker.SelfPath() == "/sbin/init" { if docker.SelfPath() == "/sbin/init" {
// Running in init mode // Running in init mode
@ -24,6 +26,7 @@ func main() {
if *flDebug { if *flDebug {
os.Setenv("DEBUG", "1") os.Setenv("DEBUG", "1")
} }
docker.GIT_COMMIT = GIT_COMMIT
if *flDaemon { if *flDaemon {
if flag.NArg() != 0 { if flag.NArg() != 0 {
flag.Usage() flag.Usage()