Files
sics/site_ansto/extract_version.sh

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
case "${1^^}" in
"ALL"|"") TARGET=ALL;;
"SITE") TARGET=SITE;;
"BRANCH"|"VERSION") TARGET=BRANCH;;
"REVISION") TARGET=REVISION;;
*) TARGET=ALL
esac
function get_branch {
path="$1"
base="UNKNOWN"
while [ "$path" != "http:" ]
do
resp=$base
if [ "$base" == "trunk" ]
then
echo "trunk"
return 0
fi
base=$(basename $path)
if [ "$base" == "branches" ]
then
echo "${resp}"
return 0
fi
path=$(dirname $path)
done
}
if [ -e ".svn" ]
then
SICS_VER="$(svn info | grep "URL:" | sort -u | cut -d ' ' -f 2 | head -n 1 | xargs basename)"
if [ "sics" == "${SICS_VER}" ]
then
SICS_VER="$(svn info .. | grep "URL:" | sort -u | cut -d ' ' -f 2 | head -n 1 | xargs dirname | xargs basename)"
fi
SICS_VER="$(get_branch "$(svn info .. | grep "URL:" | sort -u | cut -d ' ' -f 2 | head -n 1 )")"
SICS_REV="$(svn info --recursive .. | grep "Revision:" | sort -u | cut -d ' ' -f 2)"
else
git log -1 2>&1 >> /dev/null
if [ $? == 0 ]
then
SICS_VER="$(git branch | grep '^*' | sed 's/^\* *//')"
SICS_REV="$(git log -1 --oneline | cut -d ' ' -f 1)"
SICS_PLUS="$(git status --porcelain -uno | wc -l)"
if [[ ${SICS_PLUS} > 0 ]]
then
SICS_REV="${SICS_REV}+${SICS_PLUS}"
fi
else
SICS_VER="$USER"
SICS_REV="$(date '+%Y-%m-%d-%H-%m-%S')"
fi
fi
if [[ ${TARGET} == "SITE" || ${TARGET} == "ALL" ]]; then echo "ANSTO"; fi
if [[ ${TARGET} == "BRANCH" || ${TARGET} == "ALL" ]]; then echo "${SICS_VER}"; fi
if [[ ${TARGET} == "REVISION" || ${TARGET} == "ALL" ]]; then echo "${SICS_REV}"; fi