diff options
Diffstat (limited to 'src/auditor/taler-auditor.in')
-rw-r--r--[-rwxr-xr-x] | src/auditor/taler-auditor.in | 96 |
1 files changed, 91 insertions, 5 deletions
diff --git a/src/auditor/taler-auditor.in b/src/auditor/taler-auditor.in index 11443a5da..ab3d8d202 100755..100644 --- a/src/auditor/taler-auditor.in +++ b/src/auditor/taler-auditor.in @@ -1,19 +1,105 @@ -#!/bin/sh +#!/bin/bash set -eu -DIR=`mktemp -d reportXXXXXX` -for n in aggregation coins deposits reserves wire +function usage { + cat - <<EOF +taler-auditor +Audit Taler exchange database for consistency. +Arguments mandatory for long options are also mandatory for short options. + -c, --config=FILENAME use configuration file FILENAME + -h, --help print this help + -i, --internal perform checks only applicable for + exchange-internal audits + -I, --ignore-not-found ignore problems with the exchange bank account not existing + -L, --log=LOGLEVEL configure logging to use LOGLEVEL + -l, --logfile=FILENAME configure logging to write logs to FILENAME + -m, --exchange-key=KEY public key of the exchange (Crockford base32 + encoded) + -T, --timetravel=[+/-]MICROSECONDS + modify system time by given offset (for + debugging/testing only) + -v, --version print the version number +Report bugs to taler@gnu.org. +Home page: http://www.gnu.org/s/taler/ +General help using GNU software: http://www.gnu.org/gethelp/ +EOF +} + + +function optcheck { + +TEMP=`getopt -o c:hiIL:l:m:T:v --long config:,help,internal,ignore-not-found,log:,logfile:exchange-key:,timetravel:,version -n 'taler-auditor' -- "$@"` + +if [ $? != 0 ] ; +then + exit 1 ; +fi + +# Note the quotes around `$TEMP': they are essential! +eval set -- "$TEMP" + +VERBOSE=false +DEBUG=false +MEMORY= +DEBUGFILE= +JAVA_MISC_OPT= +INF= +while true; do + case "$1" in + -c | --config ) shift 2 ;; + -h | --help ) + usage + exit 0 + ;; + -i | --internal ) shift ;; + -I | --ignore-not-found ) INF="-I"; shift ;; + -L | --log ) shift 2;; + -l | --logfile ) shift ;; + -m | --exchange-key ) shift 2 ;; + -t | --timetravel ) shift 2 ;; + -m | --memory ) MEMORY="$2"; shift 2 ;; + -v | --version ) + taler-helper-auditor-deposits -v | sed -e 's/taler-helper-auditor-deposits/taler-auditor/' + exit 0 + ;; + -- ) + shift; + break + ;; + * ) + usage + exit 1 + ;; + esac +done + +} +# End of function 'optcheck' + +optcheck "$@" + +# Remove "-I" from $@ if present, store result in $ARGS. +ARGS=("$@") +ARGS=(${ARGS[@]/$INF}) + +DATE=`date +%F_%H:%M:%S` +DIR="report_$DATE" +mkdir $DIR +for n in aggregation coins deposits purses reserves do - taler-helper-auditor-$n "$@" > ${DIR}/$n.json + taler-helper-auditor-$n ${ARGS[*]} > ${DIR}/$n.json done +taler-helper-auditor-wire $INF ${ARGS[*]} > ${DIR}/wire.json + +echo "Generating auditor report in ${DIR}." taler-helper-auditor-render.py \ ${DIR}/aggregation.json \ ${DIR}/coins.json \ ${DIR}/deposits.json \ ${DIR}/reserves.json \ - ${DIR}/wire.json < %pkgdatadir%/auditor-report.tex.j2 > ${DIR}/auditor-report.tex + ${DIR}/wire.json < %datadir%/taler/exchange/auditor-report.tex.j2 > ${DIR}/auditor-report.tex cd ${DIR} pdflatex auditor-report.tex < /dev/null &> /dev/null || true pdflatex auditor-report.tex < /dev/null &> /dev/null || true |