Files
versioners/hgversion
2013-05-19 09:34:21 -04:00

78 lines
2.3 KiB
Bash

#!/bin/bash
BRANCH=$2
if [ "${BRANCH}" == "" ]; then
BRANCH=$(hg identify -b)
fi
REBUILDING=0
SHA1=$(hg identify -i | grep -Eo "[a-zA-Z0-9]+")
TAG=$(hg parents --template '{latesttag}')
TAGSHA=$(hg identify -r $TAG | cut -d ' ' -f 1)
BUILD=0
CHANGELOG="$(hg log -X .hgtags --style=changelog -r ${TAG}:${SHA1})"
if [ "$TAG" == "" ]; then
BUILD=0
REBUILDING=1
MAJOR=$BRANCH
else
MAJOR=$(echo $TAG | cut -d , -f 2)
BUILD=$(echo $TAG | cut -d , -f 3)
SHORTTAGSHA=${TAGSHA:0:12}
hg log -r ${SHA1} | grep "Added tag build|${BRANCH}|${BUILD} for changeset ${SHORTTAGSHA}" >/dev/null
if [ $? -ne 0 ] && [ "$TAGSHA" != "$SHA1" ]; then
CHANGELOG="$(hg log -X .hgtags --style=changelog -r ${SHORTTAGSHA}:${SHA1})"
BUILD=$(expr $BUILD + 1)
REBUILDING=1
else
SHA1=$TAGSHA
fi
fi
OS_NAME=""
OS_VERSION=""
if [ "$OS_NAME" == "" ] && [ "$(uname)" == "Darwin" ]; then
OS_NAME="osx"
elif [ "$OS_NAME" == "" ] && [ -f /etc/redhat-release ]; then
OS_NAME="el"
elif [ "$OS_NAME" == "" ] && [ "$(uname | grep -i '^MINGW')" != "" ] || [ "$(uname | grep -i '^CYGWIN')" != "" ]; then
OS_NAME="win"
fi
if [ "$OS_VERSION" == "" ] && [ "$OS_NAME" == "el" ]; then
OS_VERSION=$(cat /etc/redhat-release | grep -o "release [0-9]" | cut -d " " -f 2)
RHEL_VERSION=$OS_VERSION
elif [ "$OS_VERSION" == "" ] && [ "$OS_NAME" == "osx" ]; then
OS_VERSION="$(sw_vers | grep 'ProductVersion:' | grep -o '[0-9]*\.[0-9]*\.[0-9]*')"
elif [ "$OS_VERSION" == "" ] && [ "$OS_NAME" == "win" ]; then
echo "OS_VERSION unsupported on Microsoft Windows." >&2
fi
if [ "$ARCH" == "" ]; then
if [ "$OS_NAME" == "osx" ]; then
ARCH=$(uname -m)
elif [ "$OS_NAME" != "win" ]; then
ARCH=$(uname -i)
elif [ "$OS_NAME" == "win" ]; then
ARCH=$(uname -m)
fi
fi
SOURCE=$((cat .hg/hgrc 2>/dev/null | grep default | cut -d = -f 2 | sed s/"^ *"//g) || echo '')
echo "TAG=\"${TAG}\""
echo "BRANCH=\"${BRANCH}\""
echo "MAJOR=\"${MAJOR}\""
echo "BUILD=\"${BUILD}\""
echo "SHA1=\"${SHA1}\""
echo "OS_NAME=\"\${OS_NAME:-$OS_NAME}\""
echo "OS_VERSION=\"\${OS_VERSION:-$OS_VERSION}\""
echo "ARCH=\"\${ARCH:-$ARCH}\""
echo "VERSION=\"${MAJOR}-${BUILD}\""
echo "BUILDHOST=\"$(hostname)\""
echo "BUILDUSER=\"$(whoami)\""
echo "BUILDDIR=\"$(pwd)\""
echo "SOURCE=\"${SOURCE}\""
echo "REBUILDING=$REBUILDING"
echo "CHANGELOG=\"$CHANGELOG\""