diff options
Diffstat (limited to 'roms/skiboot/make_version.sh')
-rwxr-xr-x | roms/skiboot/make_version.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/roms/skiboot/make_version.sh b/roms/skiboot/make_version.sh new file mode 100755 index 000000000..59fe01c72 --- /dev/null +++ b/roms/skiboot/make_version.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +usage() { + echo "$0 [ prefix ]" + echo -e "\t Optionally specify a prefix other than 'skiboot'" + echo +} + +if [ "$1" = "-h" -o "$1" = "--help" ] ; +then + usage + exit 1; +fi + +if test -e .git || git rev-parse --is-inside-work-tree > /dev/null 2>&1; +then + version=$(git describe --exact-match 2>/dev/null) + if [ -z "$version" ]; + then + version=$(git describe 2>/dev/null) + fi + if [ -z "$version" ]; + then + version=$(git rev-parse --verify --short HEAD 2>/dev/null) + fi + if [ ! -z "$EXTRA_VERSION" ]; + then + version="$version-$EXTRA_VERSION" + fi + if git diff-index --name-only HEAD |grep -qv '.git'; + then + if [ ! -z "$USER" ]; + then + version="$version-$USER" + fi + version="$version-dirty" + diffsha=$(git diff|sha1sum) + diffsha=$(cut -c-7 <<< "$diffsha") + version="$version-$diffsha" + fi + + if [ $# -eq 1 ]; + then + version=$(echo $version | sed s/skiboot/$1/) + fi + + echo $version +else + if [ ! -z "$SKIBOOT_VERSION" ]; + then + echo $SKIBOOT_VERSION + else + if [ -f ".version" -a -s ".version" ]; + then + cat .version + else + exit 1; + fi + fi +fi |