From 08b485a31063cd767660f2bed66cce78aee34dee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= <jbrazio@gmail.com>
Date: Fri, 20 May 2016 02:30:03 +0100
Subject: [PATCH] Travis will now generate and use the custom version header
 file

---
 .travis.yml                                   |  9 ++++----
 .../bin/generate_version_header_for_marlin    | 21 +++++++++++--------
 2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 8d22bd06ab..53e3dcbf17 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,10 +3,7 @@ language: c
   #
 before_install:
   #
-  # Travis runs a detached head. We need to find the current branch
-  - git checkout `git branch --contains HEAD | grep -v '*'`
-  #
-  # Also tags for the root(s) of the minor version(s)
+  # Fetch the tag information for the current branch
   - git fetch origin --tags
   #
   # Publish the buildroot script folder
@@ -50,6 +47,10 @@ before_script:
   # Change current working directory to the build dir
   - cd ${TRAVIS_BUILD_DIR}
   #
+  # Generate custom version include
+  - generate_version_header_for_marlin ${TRAVIS_BUILD_DIR}/Marlin
+  - cat ${TRAVIS_BUILD_DIR}/Marlin/_Version.h
+  #
 script:
   #
   # Backup Configuration.h, Configuration_adv.h, and pins_RAMPS_14.h
diff --git a/buildroot/bin/generate_version_header_for_marlin b/buildroot/bin/generate_version_header_for_marlin
index 5fa9fb6338..4310084618 100755
--- a/buildroot/bin/generate_version_header_for_marlin
+++ b/buildroot/bin/generate_version_header_for_marlin
@@ -1,8 +1,7 @@
 #!/usr/bin/env bash
 # generate_version_header_for_marlin
 
-DIR="$1"
-OUTFILE="$2"
+DIR="${1}"
 
 BUILDATE=$(date '+%s')
 DISTDATE=$(date '+%Y-%m-%d %H:%M')
@@ -10,16 +9,17 @@ DISTDATE=$(date '+%Y-%m-%d %H:%M')
 BRANCH=$(git -C "${DIR}" symbolic-ref -q --short HEAD)
 VERSION=$(git -C "${DIR}" describe --tags --first-parent 2>/dev/null)
 
-# Voodoo version tag generator
+if [ -z "${BRANCH}" ]; then
+  BRANCH=$(echo "${TRAVIS_BRANCH}")
+fi
+
 if [ -z "${VERSION}" ]; then
   VERSION=$(git -C "${DIR}" describe --tags --first-parent --always 2>/dev/null)
-  SHORT_BUILD_VERSION=$(echo "${VERSION}" | sed "s/-.*/${BRANCH}/")
-  DETAILED_BUILD_VERSION=$(echo "${VERSION}" | sed "s/-/${BRANCH}-/")
-else
-  SHORT_BUILD_VERSION=$(echo "${BRANCH}")
-  DETAILED_BUILD_VERSION=$(echo "${BRANCH}-${VERSION}")
 fi
 
+SHORT_BUILD_VERSION=$(echo "${BRANCH}")
+DETAILED_BUILD_VERSION=$(echo "${BRANCH}-${VERSION}")
+
 # Gets some misc options from their defaults
 DEFAULT_MACHINE_UUID=$(awk -F'"' \
   '/#define DEFAULT_MACHINE_UUID/{ print $2 }' < "${DIR}/Version.h")
@@ -32,10 +32,13 @@ SOURCE_CODE_URL=$(awk -F'"' \
 WEBSITE_URL=$(awk -F'"' \
   '/#define WEBSITE_URL/{ print $2 }' < "${DIR}/Version.h")
 
-cat > "$OUTFILE" <<EOF
+cat > "${DIR}/_Version.h" <<EOF
 /**
  * THIS FILE IS AUTOMATICALLY GENERATED DO NOT MANUALLY EDIT IT.
  * IT DOES NOT GET COMMITTED TO THE REPOSITORY.
+ *
+ * Branch: ${BRANCH}
+ * Version: ${VERSION}
  */
 
 #define BUILD_UNIX_DATETIME "${BUILDATE}"
-- 
GitLab