1 | #!/usr/bin/env bash |
2 | export LANG=C |
3 | export LC_ALL=C |
4 | [ -n "$TOPDIR" ] && cd $TOPDIR |
5 | |
6 | try_version() { |
7 | [ -f version ] || return 1 |
8 | REV="$(cat version)" |
9 | [ -n "$REV" ] |
10 | } |
11 | |
12 | try_svn() { |
13 | [ -d .svn ] || return 1 |
14 | REV="$(svn info | awk '/^Last Changed Rev:/ { print $4 }')" |
15 | REV="${REV:+r$REV}" |
16 | [ -n "$REV" ] |
17 | } |
18 | |
19 | try_git() { |
20 | [ -d .git ] || return 1 |
21 | REV="$(git log | grep -m 1 git-svn-id | awk '{ gsub(/.*@/, "", $2); print $2 }')" |
22 | REV="${REV:+r$REV}" |
23 | [ -n "$REV" ] |
24 | } |
25 | |
26 | try_hg() { |
27 | [ -d .hg ] || return 1 |
28 | REV="$(hg log -r-1 --template '{desc}' | awk '{print $2}' | sed 's/\].*//')" |
29 | REV="${REV:+$REV}" |
30 | [ -n "$REV" ] |
31 | } |
32 | |
33 | try_version || try_svn || try_git || try_hg || REV="unknown" |
34 | echo "$REV" |
35 | |