diff options
Diffstat (limited to 'tools/pre-commit')
-rwxr-xr-x | tools/pre-commit | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/pre-commit b/tools/pre-commit new file mode 100755 index 00000000..32fc7b9e --- /dev/null +++ b/tools/pre-commit @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +TMPDIR=$HOME/Products/ledger-pre-commit +MIRROR=$HOME/Products/ledger-pre-commit-mirror + +# Checkout a copy of the current index into TMPDIR +git checkout-index --prefix=$MIRROR/ -af + +# Remove files which are no longer present in the index +git diff-index --cached --name-only --diff-filter=D -z HEAD | \ + (cd $MIRROR && xargs -0 rm -f --) + +# Copy over changes, ignoring timestamps +rsync -rlpgoDO --size-only --delete \ + --exclude-from=tools/excludes $MIRROR/ $TMPDIR/ + +cd $TMPDIR + +# Make sure there is a current Makefile. Regeneration of Makefile happens +# automatically, but if myacprep or acprep changes, we want to regenerate +# everything manually. +if [ ! -f Makefile -o \ + \( -f tools/myacprep -a -f acprep -a \ + \( tools/myacprep -nt Makefile -o acprep -nt Makefile \) \) ] +then + if [ -f tools/myacprep ]; then + tools/myacprep --local + elif [ -f acprep ]; then + ./acprep --local + elif [ -f autogen.sh ]; then + sh autogen.sh && ./configure + else + autoreconf && ./configure + fi +fi + +nice -n 20 make check |