subsurface/scripts/get-version

57 lines
815 B
Text
Raw Normal View History

#!/bin/sh
# $1 - os name {linux|darwin|win}
# $2 - [optional] raw version string "vX.Y-patchN-sha1". as from `git describe'
# (see below)
set -eu
#set -x
croak() {
echo "$0: $*" >&2
exit 1
}
[ $# -ge 1 ] || croak "missing OS argument"
os=$1
if [ $# -eq 2 ] && [ "$2" ]; then
v0=$2
else
cmd="git describe --tags --abbrev=12"
v0=$($cmd) || croak "odd; command '$cmd' failed"
fi
# strip off the 'v' prefix, if any
v0=${v0#v}
case $os in
linux)
v=$v0
;;
darwin|win)
# split version string using a '-' separator
IFS='-'
set -- $v0
v1=$1
if [ $# -gt 1 ]; then
v1=$v1.$2
else
v1=$v1.0
fi
case $os in
darwin)
v=$v1
;;
win)
# always add '0' as the 4:th digit
v=$v1.0
;;
esac
;;
*)
v='git.missing.please.hardcode.version'
;;
esac
printf '%s' $v