Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • prod_dlrg
  • bugifx_configure_once
  • fix_path_chaos
  • feature_mumbleIntegration
5 results

config.py

Blame
  • 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