#!/usr/bin/env bash
# generate_version_header_for_marlin

DIR=$1 export DIR
OUTFILE=$2 export OUTFILE
echo "/* This file is automatically generated by an Arduino hook" >$OUTFILE
echo " * Do not manually edit it" >>$OUTFILE
echo " * It does not get committed to the repository" >>$OUTFILE
echo " */" >>$OUTFILE
echo "" >>$OUTFILE

echo "#define BUILD_UNIX_DATETIME" `date +%s` >>$OUTFILE
echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>$OUTFILE
( set +e
  cd $DIR
  BRANCH=`git symbolic-ref --short HEAD`
  if [ "x$BRANCH" == "xHEAD" ] ; 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 BUILD_VERSION \"$VERSION\"" | sed "s/-/$BRANCH-/" >>$OUTFILE
  fi
  URL=`git config --local --get remote.origin.url | sed "sx.*github.com:xhttps://github.com/x" | sed "sx\.gitx/x"`
  if [ "x$URL" != "x" ] ; then
    echo "#define SOURCE_CODE_URL  \""$URL"\"" >>$OUTFILE
    echo "// Deprecated URL definition" >>$OUTFILE
    echo "#define FIRMWARE_URL  \""$URL"\"" >>$OUTFILE
  fi
  
)