2015-04-24 16:45:25 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2017-11-26 17:14:46 +00:00
|
|
|
SCRIPT_DIR=$(dirname "$0")
|
2017-03-25 11:02:20 +00:00
|
|
|
DIRTY=""
|
2017-11-26 17:20:26 +00:00
|
|
|
VERSION=""
|
2017-03-25 11:02:20 +00:00
|
|
|
|
2017-11-26 17:14:46 +00:00
|
|
|
if [ -d ${SCRIPT_DIR}/.git ] && git status 1>/dev/null 2>/dev/null
|
2017-03-26 20:04:35 +00:00
|
|
|
then
|
|
|
|
git update-index -q --ignore-submodules --refresh
|
|
|
|
# Disallow unstaged changes in the working tree
|
|
|
|
if ! git diff-files --quiet --ignore-submodules --
|
|
|
|
then
|
|
|
|
if [ "$1" = "--strict" ]
|
|
|
|
then
|
|
|
|
echo >&2 "Error: there are unstaged changes."
|
|
|
|
git diff-files --name-status -r --ignore-submodules -- >&2
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
DIRTY="-dirty"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Disallow uncommitted changes in the index
|
|
|
|
if ! git diff-index --cached --quiet HEAD --ignore-submodules --
|
|
|
|
then
|
|
|
|
if [ "$1" = "--strict" ]
|
|
|
|
then
|
|
|
|
echo >&2 "Error: there are uncommitted changes."
|
|
|
|
git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
DIRTY="-dirty"
|
|
|
|
fi
|
|
|
|
fi
|
2017-11-26 17:20:26 +00:00
|
|
|
if git describe 1>/dev/null 2>/dev/null
|
2017-11-26 17:14:46 +00:00
|
|
|
then
|
2017-11-26 17:20:26 +00:00
|
|
|
VERSION=$(git describe 2>/dev/null)$DIRTY
|
|
|
|
elif git log -n 1 1>/dev/null 2>/dev/null
|
|
|
|
then
|
|
|
|
VERSION=$(head -n 1 "${SCRIPT_DIR}/ChangeLog" | cut -d ' ' -f 2)
|
|
|
|
if [ "$VERSION" = "master" ]
|
|
|
|
then
|
|
|
|
PREVIOUS=$(grep '^2' "${SCRIPT_DIR}/ChangeLog" | head -n 2 | tail -n 1 | cut -d ' ' -f 2)
|
2017-11-26 17:38:17 +00:00
|
|
|
HASH=$(git log -n 1 --pretty=format:%cI.%ct.%h | tr -d ':' | tr -d '-' | tr '.' '-' | sed 's/T[0-9\+]*//g' 2>/dev/null)
|
|
|
|
VERSION=$PREVIOUS-next-$HASH
|
2017-11-26 17:20:26 +00:00
|
|
|
fi
|
2017-11-26 17:14:46 +00:00
|
|
|
fi
|
2017-11-26 17:20:26 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "$VERSION" ]
|
|
|
|
then
|
2017-06-26 20:46:17 +00:00
|
|
|
VERSION=$(head -n 1 "${SCRIPT_DIR}/ChangeLog" | cut -d ' ' -f 2)
|
2017-06-26 20:34:48 +00:00
|
|
|
if [ "$VERSION" = "master" ]
|
2017-03-26 20:04:35 +00:00
|
|
|
then
|
2017-06-26 20:46:17 +00:00
|
|
|
VERSION=$VERSION-$(head -n 1 "${SCRIPT_DIR}/ChangeLog" | cut -d ' ' -f 1)
|
2017-03-26 20:04:35 +00:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
VERSION=$(echo "$VERSION" | sed 's/^v//')
|
2015-04-25 13:45:38 +00:00
|
|
|
|
|
|
|
echo '#define VERSION_STRING "'$VERSION'"' > version.h
|
2015-04-25 20:57:06 +00:00
|
|
|
echo $VERSION
|