36 lines
1.5 KiB
Bash
Executable File
36 lines
1.5 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
CHCH_ICAL_SRC="https://cloud.chch.it/remote.php/dav/public-calendars/KVJE5OXYIY9B9V5C?export"
|
|
CHCH_ICAL="/var/www/chch_api/chch.ical"
|
|
WIKI_PATH="/var/www/chch/"
|
|
RAND="$(date +%s)$RANDOM$RANDOM$RANDOM"
|
|
CHCH_ICAL_TMP="/tmp/chch_$RAND.ical"
|
|
CHCH_ICAL_FAIL="/tmp/chch_ical_wget_failed"
|
|
CHCH_ICAL_FAIL_WARN_SENT="/tmp/chch_ical_wget_warned"
|
|
CHCH_ICAL_FAIL_WARN_DELAY=60 # miniutes
|
|
|
|
rm -rf /tmp/chch_*.ical
|
|
wget "$CHCH_ICAL_SRC" -O "$CHCH_ICAL_TMP" -q -T 45 -t 1
|
|
if [ $? -ne 0 ]; then
|
|
if [ ! -f "$CHCH_ICAL_FAIL" ]; then
|
|
touch "$CHCH_ICAL_FAIL"
|
|
fi
|
|
if [ ! -f "$CHCH_ICAL_FAIL_WARN_SENT" ] && test "$(find "$CHCH_ICAL_FAIL" -mmin +$CHCH_ICAL_FAIL_WARN_DELAY)"; then
|
|
echo "ERROR: wget failed to download calendar" >&2
|
|
touch "$CHCH_ICAL_FAIL_WARN_SENT"
|
|
fi
|
|
else
|
|
mv "$CHCH_ICAL_TMP" "$CHCH_ICAL" >/dev/null 2>&1
|
|
if [ -f "$CHCH_ICAL_FAIL_WARN_SENT" ]; then
|
|
echo "INFO: wget recovered from previous error" >&2
|
|
fi
|
|
rm -rf "$CHCH_ICAL_FAIL"
|
|
rm -rf "$CHCH_ICAL_FAIL_WARN_SENT"
|
|
fi
|
|
rm -rf "$CHCH_ICAL_TMP"
|
|
|
|
# this requires -> icalparser from https://github.com/OzzyCzech/icalparser.git
|
|
head $CHCH_ICAL -n1 >/dev/null 2>&1 && php "$SCRIPT_DIR/include/chch_ical2mediawiki.php" "$CHCH_ICAL" 2>/dev/null | php "$WIKI_PATH/maintenance/edit.php" -m -b --no-rc -s "automatische Aktualisierung aus dem ical feed" "Aktuelle_ChCh-Termine" >/dev/null 2>&1
|
|
echo "Hauptseite" | php "$WIKI_PATH/maintenance/purgeList.php" --purge > /dev/null 2>&1
|