Skip to content
Snippets Groups Projects
Select Git revision
  • 98e4cbfa85db60e249f81281de343fbccee9f448
  • main default protected
2 results

start_python.bat

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