summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-01-03 21:33:55 +0900
committerGitHub <noreply@github.com>2019-01-03 21:33:55 +0900
commita92f2af28a5875dd15c85212553857ba893bfc3f (patch)
treeaec8bbe2f57b84f96ddd187071e1d404e401583c /tools
parent8a6d06cbaa794b1546d01a15dc5cdfde9f836101 (diff)
parent48020979d695864a392d9a3acde197c3d8592187 (diff)
downloadsystemd-a92f2af28a5875dd15c85212553857ba893bfc3f.tar.gz
Merge pull request #11230 from keszybz/version-string-alt
Generate version string from git describe (alternative approach)
Diffstat (limited to 'tools')
-rwxr-xr-xtools/meson-vcs-tag.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/meson-vcs-tag.sh b/tools/meson-vcs-tag.sh
new file mode 100755
index 0000000000..c8033d00a1
--- /dev/null
+++ b/tools/meson-vcs-tag.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -eu
+set -o pipefail
+
+dir="$1"
+tag="$2"
+fallback="$3"
+
+if [ -n "$tag" ]; then
+ echo "$tag"
+ exit 0
+fi
+
+# Apparently git describe has a bug where it always considers the work-tree
+# dirty when invoked with --git-dir (even though 'git status' is happy). Work
+# around this issue by cd-ing to the source directory.
+cd "$dir" && git describe --abbrev=7 --dirty=+ 2>/dev/null | sed 's/^v//' || echo "$fallback"