Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | anwenderwiki:scripting:schultag.sh [2013/03/26 22:53] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | # schultag.sh | ||
+ | # Dieses Skript liest die Konfigurationsdateien " | ||
+ | # und beendet sich mit Fehlercode 0, falls der Aufruf an einem Schultag ist. | ||
+ | # andernfalls beendet sich das Skript mit Fehlercode 99 | ||
+ | # die Fehlercodes sind unten konfigurierbar | ||
+ | # | ||
+ | # Skript von Jesko Anschütz, Januar 2012 | ||
+ | # Das Skript kann frei verwendet, angepasst, so gelassen oder auch nciht benutzt werden. | ||
+ | ########### HIER WIRD KONFIGURIERT ############### | ||
+ | # wo liegen die Config-Dateien? | ||
+ | # Pfad mit abschließendem Schrägstrich | ||
+ | config_pfad="/ | ||
+ | |||
+ | # wie heißen die Dateien? | ||
+ | # Dateiname ohne Pfad und ohne Schrägstrich | ||
+ | ferien_conf=" | ||
+ | feiertage_conf=" | ||
+ | ausnahmen_conf=" | ||
+ | |||
+ | # Welche Wochentage sind grundsätzlich Schulfrei? | ||
+ | # Leerzeichen-getrennte Liste der Lokalen Kurznamen der Tage | ||
+ | # (Deutsches System z.B. Mo Di Mi Do Fr Sa So) | ||
+ | schulfreie_wochentage=" | ||
+ | |||
+ | # In welchem Format stehen die Daten in den Config-Dateien? | ||
+ | datumsformat=" | ||
+ | |||
+ | # Vielleicht ist irgendwann eine Unterscheidung von Wochenende und Ferien sinnvoll | ||
+ | # z.B. für Home-Backups, | ||
+ | exitcode_ferien=99 | ||
+ | exitcode_wochenende=98 | ||
+ | exitcode_feiertag=97 | ||
+ | exitcode_schultag=0 | ||
+ | |||
+ | ########### HIER DRUNTER MUSS NICHTS MEHR VERÄNDERT WERDEN! ################ | ||
+ | |||
+ | # schauen wir mal, ob die Config-Dateien existieren und brechen ggf. ab. | ||
+ | [ ! -e $config_pfad$ferien_conf ] && echo " | ||
+ | [ ! -e $config_pfad$ausnahmen_conf ] && echo " | ||
+ | |||
+ | # Ausnahmen durchgehen und ggf. Schultag melden | ||
+ | for ausnahmedatum in `awk ' | ||
+ | do | ||
+ | if [ " | ||
+ | then | ||
+ | exit $exitcode_schultag | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | for schulfrei in $schulfreie_wochentage; | ||
+ | do | ||
+ | if [ " | ||
+ | then | ||
+ | exit $exitcode_wochenende | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | for feiertag in `awk ' | ||
+ | do | ||
+ | if [ " | ||
+ | then | ||
+ | exit $exitcode_feiertag | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | |||
+ | for ferien in `awk ' | ||
+ | do | ||
+ | if [ " | ||
+ | then | ||
+ | IFS=" | ||
+ | set -- $ferien | ||
+ | if [ $1 -le `date +$datumsformat` ] && [ $2 -ge `date +$datumsformat` ] | ||
+ | then | ||
+ | exit $exitcode_ferien | ||
+ | fi | ||
+ | fi | ||
+ | done | ||
+ | exit 0 | ||
+ | </ |