#!/bin/bash set -e ledger_proof() { SRC="$1" DEST="$2" LOGDIR="$3" cd "$SRC" VERSION=$(git describe --all --long) if [[ -f $DEST/last-proofed && $(< $DEST/last-proofed) = $VERSION ]]; then echo "No need to run tools/proof again" exit 0 fi sudo rm -fr $DEST/ledger-proof date > $LOGDIR/ledger-proof.log time nice -n 20 \ ./acprep --debug --doxygen --compiler=g++-4.7 proof -j16 2>&1 | \ tee -a $LOGDIR/ledger-proof-g++-4.7.log time nice -n 20 \ ./acprep --debug --doxygen --python --compiler=g++-4.7 proof -j16 2>&1 | \ tee -a $LOGDIR/ledger-proof-g++-4.7-python.log time nice -n 20 \ ./acprep --debug --doxygen --compiler=clang-3.1 proof -j16 2>&1 | \ tee -a $LOGDIR/ledger-proof-clang-3.1.log time nice -n 20 \ ./acprep --debug --doxygen --python --compiler=clang-3.1 proof -j16 2>&1 | \ tee -a $LOGDIR/ledger-proof-clang-3.1-python.log if egrep -q '(ERROR|CRITICAL)' $LOGDIR/ledger-proof.log; then mutt -a $LOGDIR/ledger-proof.log \ -s '[ledger] Proof build FAILED' johnw@newartisans.com <<EOF Ledger proof build FAILED, at commit $VERSION. EOF if [[ "$1" = "--alert" ]]; then notify "Ledger proof build FAILED" else echo "Ledger proof build FAILED" exit 1 fi else echo $VERSION > $DEST/last-proofed cd $DEST/ledger-proof-python-g++-4.7/debug; make docs cd $DEST/ledger-proof-python-g++-4.7/gcov; make report mutt -s '[ledger] Proof build succeeded' johnw@newartisans.com <<EOF Ledger proof build succeeded! at commit $VERSION. EOF echo "Ledger proof build succeeded" fi } ledger_proof ${1:-$HOME/src/ledger} ${2:-$HOME/Products} ${3:-$HOME/Library/Logs} exit 0