summaryrefslogtreecommitdiff
path: root/src/auditor/taler-auditor.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/auditor/taler-auditor.in')
-rw-r--r--[-rwxr-xr-x]src/auditor/taler-auditor.in96
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