summaryrefslogtreecommitdiff
path: root/buildbot/make_auditor_reports.sh
blob: e696fa938873d05fd96ef92b441d74a69b685fc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash

# Logic that creates auditor reports, respecting
# the config file that lives under ${HOME}/.config/taler.conf.
# The results will be found under ${HOME}/reports/

set -eu
echo "Running taler-deployment bootstrap"
source ${HOME}/activate
taler-deployment bootstrap

echo "Running taler-deployment build"
source ${HOME}/activate
taler-deployment build

DATE=$(date +%Y-%m-%d)
REPORT_FILE_NOEXT="${HOME}/audit_report.${DATE}"
WIRE_REPORT_FILE_NOEXT="${HOME}/wire_audit_report.${DATE}"
JINJA_TEMPLATE="auditor-report.tex.j2"
REPORTS_DIRECTORY=$(taler-config -s auditor -o reports -f)

clean_files () {
  # Remove garbage and set permissions.
  echo Removing "${REPORT_FILE_NOEXT}.aux"
  rm -f "${REPORT_FILE_NOEXT}.aux"
  echo Removing "${REPORT_FILE_NOEXT}.tex"
  rm -f "${REPORT_FILE_NOEXT}.tex"
  echo Removing "${REPORT_FILE_NOEXT}.log"
  rm -f "${REPORT_FILE_NOEXT}.log"
  echo Removing "${REPORT_FILE_NOEXT}.txt", "${WIRE_REPORT_FILE_NOEXT}.txt"
  rm -f "${REPORT_FILE_NOEXT}.txt" "${WIRE_REPORT_FILE_NOEXT}.txt"
}


if test -a ${REPORTS_DIRECTORY}/$(basename "${REPORT_FILE_NOEXT}.pdf"); then
  echo "Today's report already compiled!"
  exit 0
fi


CONFIG_FILE="${TALER_HOME}/.config/taler.conf"

# Generate first report.
echo "Running taler-auditor"
if ! taler-auditor -c ${CONFIG_FILE} > "${REPORT_FILE_NOEXT}.txt"; then
  echo "taler-auditor failed"
  clean_files
  exit 1
fi

# Generate "wire" report.
echo "Running taler-wire-auditor"
if ! taler-wire-auditor -c ${CONFIG_FILE} > "${WIRE_REPORT_FILE_NOEXT}.txt"; then
  echo "taler-wire-auditor failed"
#  clean_files
  exit 1
fi

echo "Rendering report"
if ! python3 ${PWD}/render_auditor_reports.py \
  "${REPORT_FILE_NOEXT}.txt" \
  "${WIRE_REPORT_FILE_NOEXT}.txt" \
  > "${REPORT_FILE_NOEXT}.tex" \
  < "${JINJA_TEMPLATE}";
then
  echo "Rendering failed"
#  clean_files
  exit 1
fi

cd ${HOME}
echo "TeXing report"
if ! pdflatex "${REPORT_FILE_NOEXT}.tex" && pdflatex "${REPORT_FILE_NOEXT}.tex"; then
  echo "pdflatex failed"
#  clean_files
  exit 1
fi

clean_files

if ! test -f "${REPORT_FILE_NOEXT}.pdf"; then
  echo Could not produce the report
  exit 1
fi

mkdir -p "${REPORTS_DIRECTORY}"
chmod 444 "${REPORT_FILE_NOEXT}.pdf"
mv "${REPORT_FILE_NOEXT}.pdf" "${REPORTS_DIRECTORY}"
echo Reports moved in "${REPORTS_DIRECTORY}".

exit 0