Select Git revision
pgslides.sty
Forked from
Peter Gerwinski / bs
Source project has a limited visibility.
update 6.87 KiB
#!/bin/bash
sem=2024ws
course=dbs
date_mask="20[12][0-9][01][0-9][0-3][0-9]"
time_mask="[0-2][0-9][0-5][0-9][0-5][0-9]"
base_url="https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem/"
raw_base_url="https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/"
pattern="README:"
if [ "$1" = "--no-slides" ]; then
shift
else
slides_tex_file="$course-slides-$sem.tex"
cat > "$slides_tex_file" << EOF
\documentclass{article}
\usepackage[final]{pdfpages}
\usepackage[paperwidth=363pt,paperheight=272pt]{geometry}
\usepackage{hyperref}
\pagestyle{empty}
\begin{document}
\includepdf[pages=1]{common/$course-slides-title-$sem.pdf}
\pdfbookmark[1]{Wichtiger Hinweis}{Hinweis}
\includepdf[pages=2-]{common/$course-slides-title-$sem.pdf}
EOF
for x in $date_mask/$course-$date_mask.pdf; do
f=$(echo $x | cut -d '/' -f 1)
y=$(echo $f | cut -b 1-4)
m=$(echo $f | cut -b 5-6)
d=$(echo $f | cut -b 7-8)
date="$d.$m.$y"
src=$(echo $x | sed -e 's/\.pdf$/.tex/')
description=$(grep -m 1 "$pattern" "$src" | sed -e "s/^.*$pattern *//")
echo " \pdfbookmark[1]{$date: $description}{$f}" >> "$slides_tex_file"
echo " \includepdf[pages=-]{$x}" >> "$slides_tex_file"
done
echo '\end{document}' >> "$slides_tex_file"
lualatex -interaction batchmode "$slides_tex_file" \
&& echo \
&& lualatex -interaction batchmode "$slides_tex_file" \
|| {
echo
echo "$0: error compiling $slides_tex_file"
exit 1
}
rm -f dbs-slides-"$sem".{aux,log,out}
echo
fi
# if pdfjam --papersize "{362.835pt,272.126pt}" -o $course-slides-$sem.pdf \
# $date_mask/$course-$date_mask.pdf > /dev/null 2> pdfjam.err; then
# rm pdfjam.err
# else
# cat pdfjam.err
# rm pdfjam.err
# exit 1
# fi
readme_old=README.md
readme=README-NEW.md
collect ()
{
if [ "$1" = "--with-examples" ]; then
with_examples=true
shift
else
with_examples=false
fi
if [ "$1" = "--no-date" ]; then
show_date=false
shift
else
show_date=true
fi
headline="$1"; shift
source_suffix="$1"; shift
target_suffix="$1"; shift
underline=$(echo "$headline" | sed -e 's/./-/g')
echo >> $readme
echo "$headline" >> $readme
echo "$underline" >> $readme
for f in "$@"; do
if [ -f "$f" ]; then
description=$(grep -m 1 "$pattern" "$f" | sed -e "s/^.*$pattern *//")
if [ -n "$description" ]; then
if $show_date; then
y=$(echo $f | cut -b 1-4)
m=$(echo $f | cut -b 5-6)
d=$(echo $f | cut -b 7-8)
date="$d.$m.$y: "
else
date=""
fi
target_file=$(sed -e "s/\.$source_suffix$/.$target_suffix/" <<< "$f")
if [ -f "$target_file" ]; then
url="$raw_base_url$target_file"
if $with_examples; then
example_url="$base_url"$(echo $f | sed -e "s,/[^/]*$,/,")
echo " * [$date$description]($url) [**(Beispiele)**]($example_url)" >> $readme
else
echo " * [$date$description]($url)" >> $readme
fi
fi
fi
else
return 1
fi
done
}
cat > $readme << EOF
Datenbanken und Datensicherheit
===============================
Lehrveranstaltung im Wintersemester 2024/25
Hochschule Bochum, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2023–2024 Peter Gerwinski
**Diese Lehrmaterialien sind freie Software.**
Sie dürfen diese gemäß den jeweils angegebenen Lizenzen
([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/CC-BY-SA-3.0),
[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/GNU-GPL-3),
[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/BSD-MODIFIED))
studieren, kopieren, modifizieren und/oder weitergeben.
Für Details siehe [common/README](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/README).
EOF
collect --with-examples "Vortragsfolien und Beispiele:" tex pdf $date_mask/$course-$date_mask.tex $date_mask/verschluesselung-$date_mask.tex
cat >> $readme << EOF
* [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/$course-slides-$sem.pdf)
EOF
collect "Übungsaufgaben:" tex pdf $date_mask/$course-uebung-$date_mask.tex || echo "(keine)" >> $readme
#collect "Musterlösungen:" tex pdf $date_mask/$course-musterloesung-$date_mask.tex || echo "(keine)" >> $readme
#collect "Tafelbilder:" txt png $date_mask/*.txt || echo "(keine)" >> $readme
#collect "Notizen:" txt txt $date_mask/dbs-*.txt || echo "(keine)" >> $readme
collect --no-date "Praktikumsunterlagen:" tex pdf $date_mask/$course-$sem-p[0-3].tex || echo "(keine)" >> $readme
#collect --with-examples --no-date "Alte Klausuren:" tex pdf exams/$date_mask/*-klausur-$date_mask.tex >> $readme
#collect "Probeklausur:" tex pdf $date_mask/$course-probeklausur-$date_mask.tex || echo "(keine)" >> $readme
#Skript:
#-------
# * [Datenbanken und Datensicherheit](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/script/$course-$sem.pdf)
# * [script – Skript zur Lehrveranstaltung](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem/script)
# * [script – lecture notes](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem/script)
cat >> $readme << EOF
Original-Materialien einschließlich Beispiel-Programme und LaTeX-Quelltexte:
----------------------------------------------------------------------------
* [common – gemeinsame Dateien für Skript und Vortragsfolien](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem/common)
* [2024???? – Vortragsfolien und Beispiele](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem)
Databases and Information Security
==================================
Course in winter semester 2024–25
Bochum University of Applied Sciences, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2023–2024 Peter Gerwinski
**These teaching materials are Free Software.**
You may study, copy, modify, and/or distribute them
according to their respective licences
([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/CC-BY-SA-3.0),
[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/GNU-GPL-3),
[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/BSD-MODIFIED)).
See the file [common/README](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/common/README) for details.
* [common – common files for lecture notes and slides](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem/common)
* [2024???? – slides and examples](https://gitlab.cvh-server.de/pgerwinski/$course/tree/$sem)
* [$course-slides-$sem.pdf – all slides in 1 file](https://gitlab.cvh-server.de/pgerwinski/$course/raw/$sem/$course-slides-$sem.pdf)
EOF
if diff -wu $readme_old $readme; then
rm $readme
else
echo -n "Press ENTER to overwrite $readme_old, ^C to abort (keeping $readme) "
read junk
mv $readme $readme_old
fi