build: Update version.sh to latest
diff --git a/version.sh b/version.sh
index 27d16c05..511ebe3d 100755
--- a/version.sh
+++ b/version.sh
@@ -8,5 +8,22 @@ test -z "$srcdir" && srcdir=.
cd "$srcdir"
-[ -f version ] || ( git describe --exact-match --tags $(git log -n1 --pretty='%h') 2>/dev/null || git log -n1 --pretty='%h' ) | sed 's/^v//g' | xargs printf '%s'
-[ -f version ] && ( cat version 2>/dev/null ) | xargs printf '%s'
+if [ -f version ]; then
+ printf '%s' "$(cat version)"
+ exit 0
+fi
+
+if ! [ -d .git ] || ! git log -n1 --pretty='%h' >/dev/null 2>&1; then
+ printf 'UNVERSIONED'
+ exit 0
+fi
+
+tmpfile="$(mktemp)"
+
+if ! git describe --exact-match --tags $(git log -n1 --pretty='%h') >"$tmpfile" 2>/dev/null; then
+ echo g$(git log -n1 --pretty='%h') >"$tmpfile"
+fi
+
+printf '%s' "$(sed 's/^v//g' <"$tmpfile")"
+
+rm -f "$tmpfile"
