diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-09-17 02:55:01 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-09-17 14:47:01 -0700 |
commit | 8d1b95587c1ebea4631c66b8e7e4130153c70b26 (patch) | |
tree | 1744305b6c7e7d2e41df286591f7609fab99d4a1 /GIT-VERSION-GEN | |
parent | 382d12a414942f027ea30911294cd8c8becdf2cd (diff) | |
download | unicorn-8d1b95587c1ebea4631c66b8e7e4130153c70b26.tar.gz |
* Manifest/CHANGELOG can be maintainance is painful. I really hate having those in the source tree when I have a version control system that already: 1) encourages me to make meaningful commits 2) is highly scriptable for generating manifests/changelogs * hand-rolled gemspec allows more control for specifying pre-release gem versions * Less magic over what the `rubyforge` command does, being able to spawn $VISUAL on changelogs/release notes and make edits on them is nice. Additionally I still strongly prefer GNU make over Rake for many tasks since it offers better parallelization and some things are easier *for me* in shell than Ruby.
Diffstat (limited to 'GIT-VERSION-GEN')
-rwxr-xr-x | GIT-VERSION-GEN | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN new file mode 100755 index 0000000..366063e --- /dev/null +++ b/GIT-VERSION-GEN @@ -0,0 +1,40 @@ +#!/bin/sh + +GVF=GIT-VERSION-FILE +DEF_VER=v0.91.0.GIT + +LF=' +' + +# First see if there is a version file (included in release tarballs), +# then try git-describe, then default. +if test -f version +then + VN=$(cat version) || VN="$DEF_VER" +elif test -d .git -o -f .git && + VN=$(git describe --abbrev=4 HEAD 2>/dev/null) && + case "$VN" in + *$LF*) (exit 1) ;; + v[0-9]*) + git update-index -q --refresh + test -z "$(git diff-index --name-only HEAD --)" || + VN="$VN-dirty" ;; + esac +then + VN=$(echo "$VN" | sed -e 's/-/./g'); +else + VN="$DEF_VER" +fi + +VN=$(expr "$VN" : v*'\(.*\)') + +if test -r $GVF +then + VC=$(sed -e 's/^GIT_VERSION = //' <$GVF) +else + VC=unset +fi +test "$VN" = "$VC" || { + echo >&2 "GIT_VERSION = $VN" + echo "GIT_VERSION = $VN" >$GVF +} |