#!/usr/bin/env bash
# generate_version_header_for_marlin

DIR="$1" export DIR
OUTFILE="$2" export OUTFILE

BUILDATE=$(date '+"%s"')
DISTDATE=$(date '+"%Y-%m-%d %H:%M"')


cat > "$OUTFILE" <<EOF
/**
 * THIS FILE IS AUTOMATICALLY GENERATED DO NOT MANUALLY EDIT IT.
 * IT DOES NOT GET COMMITTED TO THE REPOSITORY.
 */

#define BUILD_UNIX_DATETIME ${BUILDATE}
#define STRING_DISTRIBUTION_DATE ${DISTDATE}
#define PROTOCOL_VERSION "1.0"
#define MACHINE_NAME "Travis CI"
#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin"
#define DEFAULT_MACHINE_UUID "3442baa1-08ee-435b-8a10-99d185bd43b8"
#define WEBSITE_URL "http://marlinfw.org"
EOF

( set +e
  cd "$DIR"

  BRANCH=`git symbolic-ref -q --short HEAD`
  if [ "x$BRANCH" == "x" ] ; then
    BRANCH=""
  elif [ "x$BRANCH" == "xDevelopment" ] ; then
    BRANCH=" dev"
  else
    BRANCH=" $BRANCH"
  fi

  VERSION=`git describe --tags --first-parent 2>/dev/null`
  if [ "x$VERSION" != "x" ] ; then
    echo "#define SHORT_BUILD_VERSION \"$VERSION\"" | sed "s/-.*/$BRANCH\"/" >>"$OUTFILE"
    echo "#define DETAILED_BUILD_VERSION \"$VERSION\"" | sed "s/-/$BRANCH-/" >>"$OUTFILE"
  else
    VERSION=`git describe --tags --first-parent --always 2>/dev/null`
    echo "#define SHORT_BUILD_VERSION \"$BRANCH\"" >>"$OUTFILE"
    echo "#define DETAILED_BUILD_VERSION \"${BRANCH}-$VERSION\"" >>"$OUTFILE"
  fi
)