#!/bin/sh
usage()
{
cat << EOF >&2
Usage:
-h show this HELP message
-s SRCDIR set source directory
-o OUTPUT set output header
-p PREFIX set macro prefix
EOF
exit 1
}
# one
workdir=$(pwd)
srcdir=
output=
prefix=
while getopts "hs:o:p:" opt; do
case $opt in
h)
usage
;;
s)
srcdir="$OPTARG"
;;
o)
output="$OPTARG"
;;
p)
prefix="$OPTARG"
;;
\?)
printf "Invalid option: -%s" "$OPTARG" >&2
usage
;;
esac
done
# two
if [ -z "$srcdir" ] || [ -z "$output" ] || [ -z "$prefix" ]; then
usage
fi
cd "$srcdir" || exit 2
gitver=`git rev-parse --verify HEAD 2>/dev/null` || gitver="unknown"
macro=`echo "$prefix"_GIT_VERSION | tr '[:lower:]' '[:upper:]'`
cd "$workdir" || exit 2
mkdir -p `dirname "$output"` || exit 2
printf "#define $macro\t\"$gitver\"\n" > "$output"
# all done
exit 0