Blob Blame History Raw
From 312ed29698e8580f6044a9c51f29d43670bb5ba3 Mon Sep 17 00:00:00 2001
From: Jan Chaloupka <jchaloup@redhat.com>
Date: Tue, 21 Jul 2015 10:26:47 +0200
Subject: [PATCH] use the correct delimiter for -X option of --ldflags

---
 hack/lib/version.sh | 42 +++++++++++++++++++++++++++++++++++++-----
 1 file changed, 37 insertions(+), 5 deletions(-)

diff --git a/hack/lib/version.sh b/hack/lib/version.sh
index 794ab6f..fe670b7 100644
--- a/hack/lib/version.sh
+++ b/hack/lib/version.sh
@@ -99,25 +99,57 @@ kube::version::load_version_vars() {
   source "${version_file}"
 }
 
+# Create -X keyDELvalue string, where DEL is delimiter oy key and value
+# to provide -X option for both golang <= 1.5 and higher.
+# Implicit delimiter is " " (space)
+kube::version::ldflags::new_pair() {
+  local key=${1-}
+  local value=${2-}
+  local delimiter=${3-}
+
+  [[ -n ${key} ]] || {
+    return ""
+  }
+
+  [[ -n ${value} ]] || {
+    return ""
+  }
+
+  # Set implicit delimiter if not set
+  if [[ -z "${delimiter}" ]]; then
+    delimiter=" "
+  fi
+
+  echo "-X ${key}${delimiter}${value}"
+}
+
 # Prints the value that needs to be passed to the -ldflags parameter of go build
 # in order to set the Kubernetes based on the git tree status.
 kube::version::ldflags() {
   kube::version::get_version_vars
 
+  GO_VERSION=($(go version))
+
+  if [[ -n $(echo "${GO_VERSION[2]}" | grep -E 'go1.2|go1.3|go1.4') ]]; then
+    DELIM=" "
+  else
+    DELIM="="
+  fi
+
   local -a ldflags=()
   if [[ -n ${KUBE_GIT_COMMIT-} ]]; then
-    ldflags+=(-X "${KUBE_GO_PACKAGE}/pkg/version.gitCommit" "${KUBE_GIT_COMMIT}")
-    ldflags+=(-X "${KUBE_GO_PACKAGE}/pkg/version.gitTreeState" "${KUBE_GIT_TREE_STATE}")
+    ldflags+=($(kube::version::ldflags::new_pair "${KUBE_GO_PACKAGE}/pkg/version.gitCommit" "${KUBE_GIT_COMMIT}" "${DELIM}"))
+    ldflags+=($(kube::version::ldflags::new_pair "${KUBE_GO_PACKAGE}/pkg/version.gitTreeState" "${KUBE_GIT_TREE_STATE}" "${DELIM}"))
   fi
 
   if [[ -n ${KUBE_GIT_VERSION-} ]]; then
-    ldflags+=(-X "${KUBE_GO_PACKAGE}/pkg/version.gitVersion" "${KUBE_GIT_VERSION}")
+    ldflags+=($(kube::version::ldflags::new_pair "${KUBE_GO_PACKAGE}/pkg/version.gitVersion" "${KUBE_GIT_VERSION}" "${DELIM}"))
   fi
 
   if [[ -n ${KUBE_GIT_MAJOR-} && -n ${KUBE_GIT_MINOR-} ]]; then
     ldflags+=(
-      -X "${KUBE_GO_PACKAGE}/pkg/version.gitMajor" "${KUBE_GIT_MAJOR}"
-      -X "${KUBE_GO_PACKAGE}/pkg/version.gitMinor" "${KUBE_GIT_MINOR}"
+      $(kube::version::ldflags::new_pair "${KUBE_GO_PACKAGE}/pkg/version.gitMajor" "${KUBE_GIT_MAJOR}" "${DELIM}")
+      $(kube::version::ldflags::new_pair "${KUBE_GO_PACKAGE}/pkg/version.gitMinor" "${KUBE_GIT_MINOR}" "${DELIM}")
     )
   fi
 
-- 
1.9.3