summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/excludes43
-rwxr-xr-xtools/pre-commit39
2 files changed, 82 insertions, 0 deletions
diff --git a/tools/excludes b/tools/excludes
new file mode 100644
index 00000000..bcb13e40
--- /dev/null
+++ b/tools/excludes
@@ -0,0 +1,43 @@
+*.la
+*.lo
+*.o
+.deps/
+.git*
+.git/
+.libs/
+Makefile
+Makefile.in
+RegressionTests
+acconf.h
+acconf.h.in
+acconf.h.in~
+aclocal.m4
+autom4te.cache/
+build/
+config.guess
+config.log
+config.status
+config.sub
+configure
+data_tests
+depcomp
+doc/.dirstamp
+doc/ledger.info
+elisp-comp
+expr_tests
+install-sh
+ledger
+ledger.so
+lib/cppunit/
+lib/utfcpp/
+libtool
+ltmain.sh
+make.sh
+math_tests
+missing
+report_tests
+src/system.hh.gch
+stamp-h1
+texinfo.tex
+util_tests
+version.m4
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