Select Git revision
start_python.bat
update 6.60 KiB
#!/bin/bash
sem=2019ws
course=hp
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/master/"
raw_base_url="https://gitlab.cvh-server.de/pgerwinski/$course/raw/master/"
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]{script/$course-slides-title-$sem.pdf}
\pdfbookmark[1]{Wichtiger Hinweis}{Hinweis}
\includepdf[pages=2-]{script/$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
}
echo
fi
# if pdfjam --papersize "{362.835pt,272.126pt}" -o hp-slides-$sem.pdf \
# $date_mask/hp-$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 $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
url="$raw_base_url"$(echo $f | sed -e "s/\.$source_suffix$/.$target_suffix/")
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
else
return 1
fi
done
}
cat > $readme << EOF
Hardwarenahe Programmierung
===========================
Lehrveranstaltung im Wintersemester 2019/20
Hochschule Bochum, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2012–2019 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/hp/raw/master/common/CC-BY-SA-3.0),
[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/GNU-GPL-3),
[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/BSD-MODIFIED))
studieren, kopieren, modifizieren und/oder weitergeben.
Für Details siehe [common/README](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/README).
EOF
collect --with-examples "Vortragsfolien und Beispiele:" tex pdf $date_mask/hp-$date_mask.tex $date_mask/verschluesselung-$date_mask.tex
cat >> $readme << EOF
* [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/hp-slides-$sem.pdf)
EOF
collect "Übungsaufgaben:" tex pdf $date_mask/hp-uebung-$date_mask.tex
collect "Musterlösungen:" tex pdf $date_mask/hp-musterloesung-$date_mask.tex || echo "(keine)" >> $readme
collect "Tafelbilder:" txt jpg $date_mask/photo-$date_mask-$time_mask.txt || echo "(keine)" >> $readme
collect --no-date "Praktikumsunterlagen:" tex pdf $date_mask/hp-$sem-p[1-4].tex || echo "(keine)" >> $readme
collect --with-examples --no-date "Alte Klausuren:" tex pdf exams/$date_mask/*-klausur-$date_mask.tex >> $readme
cat >> $readme << EOF
Skript:
-------
* [Hardwarenahe Programmierung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/script/hp-$sem.pdf)
Original-Materialien einschließlich Beispiel-Programme und LaTeX-Quelltexte:
----------------------------------------------------------------------------
* [common – gemeinsame Dateien für Skript und Vortragsfolien](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/common)
* [script – Skript zur Lehrveranstaltung](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/script)
* [201????? – Vortragsfolien und Beispiele](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master)
* [branch 2018ws – vollständige Lehrmaterialien vom Wintersemester 2018/19](https://gitlab.cvh-server.de/pgerwinski/hp/tree/2018ws)
Low-Level Programming
=====================
Course in winter semester 2019–20
Bochum University of Applied Sciences, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2012–2019 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/hp/raw/master/common/CC-BY-SA-3.0),
[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/GNU-GPL-3),
[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/BSD-MODIFIED)).
See the file [common/README](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/common/README) for details.
* [common – common files for lecture notes and slides](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/common)
* [script – lecture notes](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master/script)
* [201????? – slides and examples](https://gitlab.cvh-server.de/pgerwinski/hp/tree/master)
* [hp-slides-2019ws.pdf – all slides in 1 file](https://gitlab.cvh-server.de/pgerwinski/hp/raw/master/hp-slides-2019ws.pdf)
* [branch 2018ws – complete teaching materials from winter semester 2018–19](https://gitlab.cvh-server.de/pgerwinski/hp/tree/2018ws)
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