diff --git a/generate.py b/generate.py index b804508..e5f6bda 100755 --- a/generate.py +++ b/generate.py @@ -138,7 +138,7 @@ if __name__ == "__main__": parser.add_argument("--send-mail", action="store_true") args = parser.parse_args() - config = yaml.full_load(open(args.config)) + config = yaml.safe_load(open(args.config)) if config["redeleitung"]["name"].startswith("./"): with open(config["redeleitung"]["name"]) as f: diff --git a/prepare_presentation.sh b/prepare_presentation.sh index 14246b3..03efcf4 100755 --- a/prepare_presentation.sh +++ b/prepare_presentation.sh @@ -1,16 +1,18 @@ -#!/bin/bash -dest_file="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )/data/presentation_$(date +%Y-%m-%d).tex" +#!/bin/sh +set -e +dest_file="$(realpath "$(dirname "$0")")/data/presentation_$(date +%Y-%m-%d).tex" echo Reading old protocols ./read_db.sh echo Getting E-Mail ./read_ubmails.py echo Generating -./generate.py --presentation > $dest_file +./generate.py --presentation >"$dest_file" echo Compiling +mkdir -p data/presentation cd data/presentation/ -pdflatex $dest_file > /dev/null -pdflatex $dest_file > /dev/null -pdflatex $dest_file > /dev/null +for _ in $(seq 3); do + pdflatex "$dest_file" +done diff --git a/read_db.sh b/read_db.sh index f25a4b6..617b83b 100755 --- a/read_db.sh +++ b/read_db.sh @@ -1,15 +1,37 @@ -#!/bin/bash -e -read -s -p "DB-Passwort: " password; -echo +#!/bin/sh +set -e -raw_proto=$(echo $password | ssh fsmi "psql -A -t -h fsmi-db fsmi -c \"select datum from protokolle where ist_veroeffentlicht='f' and name is null order by datum asc\"" 2> /dev/null) -echo $password | ssh fsmi "psql -A -t -h fsmi-db fsmi -c \"select protokoll from protokolle where ist_veroeffentlicht='f' and name is null order by datum desc limit 1\"" 2> /dev/null > data/last_proto +: "${FSR_GEN_SSH_TO:=fsmi-login.fsmi.uni-karlsruhe.de}" +: "${FSR_GEN_SSH:=$(test "$(hostname -d)" = "fsmi.uni-karlsruhe.de"; echo $?)}" -for proto in $raw_proto; -do +sql() { + # $1: select + # $2: order_by + select="$1" + order_by="$2" + printf " + SELECT %s FROM protokolle + WHERE ist_veroeffentlicht=false AND name IS NULL + ORDER BY %s + " "$select" "$order_by" | tr '\n' ' ' +} + +cmd="psql --no-align --tuples-only service=fsmi -c" +cmd_raw="$cmd '$(sql "datum" "datum ASC")'" +cmd_last="$cmd '$(sql "protokoll" "datum DESC LIMIT 1")'" + +if [ -z "$FSR_GEN_SSH" ] || [ "$FSR_GEN_SSH" -eq 0 ]; then + raw_proto="$(sh -c "$cmd_raw")" + sh -c "$cmd_last" >data/last_proto +else + raw_proto="$(ssh -- "$FSR_GEN_SSH_TO" "$cmd_raw")" + ssh -- "$FSR_GEN_SSH_TO" "$cmd_last" >data/last_proto +fi + +for proto in $raw_proto; do echo "* FSR-Protokoll vom $proto" - echo "$proto" > data/last_date done > data/uvproto.txt +echo "$proto" > data/last_date grep -oP '(?<=nächste Redeleitung: ).*(?=)' data/last_proto > data/redeleitung grep -oP '(?<=nächstes Protokoll: ).*(?=)' data/last_proto > data/protokoll diff --git a/templates/fsr_presentation.tex.j2 b/templates/fsr_presentation.tex.j2 index 5531157..105917b 100644 --- a/templates/fsr_presentation.tex.j2 +++ b/templates/fsr_presentation.tex.j2 @@ -22,7 +22,7 @@ \title{Fachschaftsrat Mathe/Info} \author{Redeleitung: {{redeleitung.name}} \\Protokoll: {{protokoll.name}} } \date{ {{date.strftime("%d.%m.%Y")}} } -\logo{\includegraphics[width=17mm]{fslogo}} +\logo{\includegraphics[width=17mm]{../../fslogo}} \begin{document} \begin{frame}