#!/bin/bash # Usage: git_revision.sh # Generates git-revision.h in the specified output directory. OUTPUT_DIR="${1:-.}" echo "-- Generating header for git hash" GIT_HEADER="${OUTPUT_DIR}/git-revision.h" [ -d "${OUTPUT_DIR}" ] || mkdir -p "${OUTPUT_DIR}" GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` GIT_VERSION=`git log -n 1 --pretty=format:"%ad - %h"` if [ -f "$GIT_HEADER" ] && [ "$(grep -cs "$GIT_VERSION" "$GIT_HEADER")" = 1 ] then echo "-- No need to generate new $GIT_HEADER - git hash is unchanged" exit 0; fi echo "-- git branch is : " $GIT_BRANCH echo "-- git version is : " $GIT_VERSION echo "#ifndef GIT_VERSION_H" > $GIT_HEADER echo "#define GIT_VERSION_H" >> $GIT_HEADER echo "" >> $GIT_HEADER echo "#define GIT_BRANCH \"$GIT_BRANCH\"" >> $GIT_HEADER echo "#define GIT_CURRENT_SHA1 \"$GIT_VERSION\"" >> $GIT_HEADER echo "" >> $GIT_HEADER echo "#endif //GIT_VERSION_H" >> $GIT_HEADER echo "-- file is generated into" $GIT_HEADER