diff options
Diffstat (limited to 'hash.sh')
-rwxr-xr-x[-rw-r--r--] | hash.sh | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -1,3 +1,25 @@ #!/bin/sh # script to determine git hash of current source tree -FROM_ARCHIVE=$Format:%H$ # set when running git --archive <hash/tag>
\ No newline at end of file + +# set a variable when running `git --archive <hash/tag>` (this is what github does) +# alternatively, you could also git get-tar-commit-id < tarball (but that's a bit dirtier) +FROM_ARCHIVE=$Format:%H$ + +# ... but try to use whatever git tells us if there is a .git folder +if [ -d .git -a -r .git ] +then + hash=$(git log 2>/dev/null | head -n1 2>/dev/null | sed "s/.* //" 2>/dev/null) +fi + +if [ x"$hash" != x ] +then + echo $hash +elif [ "$FROM_ARCHIVE" != ':%H$' ] +then + echo $FROM_ARCHIVE +else + echo "commit hash detection fail. Dear packager, please figure out what goes wrong or get in touch with us" >&2 + echo UNKNOWN + exit 2 +fi +exit 0 |