aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/make_version.sh
diff options
context:
space:
mode:
Diffstat (limited to 'roms/skiboot/make_version.sh')
-rwxr-xr-xroms/skiboot/make_version.sh60
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