]>
Commit | Line | Data |
---|---|---|
dcb905b6 | 1 | #!/bin/bash |
681bd2c5 ZJS |
2 | |
3 | set -eu | |
4 | set -o pipefail | |
5 | ||
e4d5753b | 6 | dir="$1" |
e1ca734e ZJS |
7 | tag="$2" |
8 | fallback="$3" | |
9 | ||
10 | if [ -n "$tag" ]; then | |
cc5549ca ZJS |
11 | echo "$tag" |
12 | exit 0 | |
e1ca734e | 13 | fi |
681bd2c5 | 14 | |
e4d5753b ZJS |
15 | # Apparently git describe has a bug where it always considers the work-tree |
16 | # dirty when invoked with --git-dir (even though 'git status' is happy). Work | |
17 | # around this issue by cd-ing to the source directory. | |
88e94c38 JL |
18 | cd "$dir" |
19 | # Check that we have either .git/ (a normal clone) or a .git file (a work-tree) | |
20 | # and that we don't get confused if a tarball is extracted in a higher-level | |
21 | # git repository. | |
22 | [ -e .git ] && git describe --abbrev=7 --dirty=+ 2>/dev/null | sed 's/^v//' || echo "$fallback" |