Преглед на файлове

Merged shawnsi/git-version

Solomon Hykes преди 12 години
родител
ревизия
35c68944c7
променени са 3 файла, в които са добавени 12 реда и са изтрити 1 реда
  1. 6 1
      Makefile
  2. 3 0
      commands.go
  3. 3 0
      docker/docker.go

+ 6 - 1
Makefile

@@ -10,6 +10,11 @@ ifeq ($(VERBOSE), 1)
 GO_OPTIONS += -v
 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
 
 DOCKER_DIR := $(SRC_DIR)/$(DOCKER_PACKAGE)
@@ -24,7 +29,7 @@ all: $(DOCKER_BIN)
 
 $(DOCKER_BIN): $(DOCKER_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.
 
 $(DOCKER_DIR):

+ 3 - 0
commands.go

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

+ 3 - 0
docker/docker.go

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