diff options
author | Josh Suereth <joshua.suereth@gmail.com> | 2012-03-16 01:05:31 -0400 |
---|---|---|
committer | Josh Suereth <joshua.suereth@gmail.com> | 2012-03-16 12:08:42 -0400 |
commit | 1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e (patch) | |
tree | 29f06951c7ee8c161906a50ec0cfcab61ef09ea0 /tools/get-scala-commit-sha | |
parent | 479aee3617e952d8705b95ef2ea3a155914dd03c (diff) | |
download | scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.tar.gz scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.tar.bz2 scala-1d8037bbf56b303d69cd3e8faafc05fc5fc5db3e.zip |
Finished migrating to new versioning scheme
Conflicts:
build.xml
tools/get-scala-revision.bat
Diffstat (limited to 'tools/get-scala-commit-sha')
-rwxr-xr-x | tools/get-scala-commit-sha | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/get-scala-commit-sha b/tools/get-scala-commit-sha new file mode 100755 index 0000000000..0aa70d985c --- /dev/null +++ b/tools/get-scala-commit-sha @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# +# Usage: get-scala-commit-sha [dir] +# Figures out current commit sha of a git clone. +# If no dir is given, current working dir is used. +# +# Example build version string: +# g6f1c486d0b +# + +[[ $# -eq 0 ]] || cd "$1" + +ensure_tag () { + sha=$1 + rev=$2 + + [[ -n $(git tag -l $rev) ]] || { + git tag -a -m "generated by get-scala-revision" $rev $sha + } +} + +# Ensure some baseline tags are present so if this repository's +# tags are screwed up or stale, we should still have a reference +# point for a build string. +ensure_tag 58cb15c40d v2.10.0-M1 +ensure_tag 29f3eace1e v2.9.1 +ensure_tag b0d78f6b9c v2.8.2 + +# the closest tag, obtained separately because we have to +# reconstruct the string around the padded distance. +tag=$(git describe --tags --match 'v2*' --abbrev=0) + +# printf %016s is not portable for 0-padding, has to be a digit. +# so we're stuck disassembling it. +described=$(git describe --tags --match 'v2*' --abbrev=10) +suffix="${described##${tag}-}" +hash=$(echo $suffix | cut -d - -f 2) + +echo "$hash" |