#!/bin/bash SSH_IP="127.0.0.1" SSHPORT="0000" SSH_USER="command" SSH_SUCCESS_FILE="/tmp/test_chch-status_ssh-success" JSON_FILE="/tmp/test_chch.json" JSON_FILE_TEMPL="/var/www/chch_api/chch.json.template" JSON_FILE_TMP="$(mktemp)" STATUS_FILE="/tmp/test_chch-status" STATUS_OPEN="geöffnet" STATUS_CLOSED="geschlossen" STATUS_NULL="unbekannt" STATUS_NULL_DELAY_MINUTES=10 STATUS_NULL_TIMEOUT_MINUTES=180 STATUS_MSG_CLOSED="Geschlossen | Closed" STATUS_MSG_OPEN="Geöffnet | Open" WIKI_PATH="" WIKI_IMAGE_CLOSED="ChCh_Logo_closed.png" WIKI_IMAGE_OPEN="ChCh_Logo_open.png" WIKI_MAIN_PAGE="Hauptseite" WIKI_STATUS_PAGE="Aktueller_ChCh-Öffnungsstatus" find "$SSH_SUCCESS_FILE" -mmin +$STATUS_NULL_TIMEOUT_MINUTES -exec rm "$STATUS_FILE" \; 2>/dev/null OLD_STATUS="$(cat "$STATUS_FILE" 2>/dev/null)" #STATUS="$(echo status | ssh -q -p $SSHPORT $SSH_USER@$SSH_IP 2>/dev/null)" STATUS="$(echo status | cat /tmp/test_chch_fake_status 2>/dev/null)" if [ -z "$STATUS" ]; then if [ -f "$SSH_SUCCESS_FILE" ] && test $(find "$SSH_SUCCESS_FILE" -mmin -$STATUS_NULL_DELAY_MINUTES -mmin +0); then STATUS="$OLD_STATUS" [ -z "$STATUS" ] && STATUS="$STATUS_NULL" else STATUS="$STATUS_NULL" fi else touch $SSH_SUCCESS_FILE fi TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null) || TIMESTAMP_LASTCHANGE=$(date +%s) [ "$STATUS" != "$STATUS_NULL" ] && printf "%s\n" "$STATUS" > "$STATUS_FILE" if [ "$STATUS" == "$OLD_STATUS" -o "$STATUS" == "$STATUS_NULL" ]; then touch --date=@$TIMESTAMP_LASTCHANGE "$STATUS_FILE" else TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null) fi TIMESTAMP_LASTCHANGE_DATE="$(date -d "@$TIMESTAMP_LASTCHANGE" "+%H:%M (%d.%m.%Y)")" API_STATUS="null" API_STATUS_MSG="$STATUS_MSG_CLOSED" WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''unbekannt'''
seit $TIMESTAMP_LASTCHANGE_DATE]]" case $STATUS in $STATUS_OPEN) API_STATUS="true" WIKI_STATUS="[[File:$WIKI_IMAGE_OPEN|link=|right|frame|'''$STATUS'''
seit $TIMESTAMP_LASTCHANGE_DATE]]" API_STATUS_MSG="$STATUS_MSG_OPEN" ;; $STATUS_CLOSED) API_STATUS="false" API_STATUS_MSG="$STATUS_MSG_CLOSED" WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''$STATUS'''
seit $TIMESTAMP_LASTCHANGE_DATE]]" ;; $STATUS_NULL) API_STATUS="null" STATUS_="'''Öffnungsstatus unbekannt'''" IMAGE="ChCh_Logo_closed.png" if [ -f "$STATUS_FILE" ]; then case $(head -n1 "$STATUS_FILE") in $STATUS_OPEN) STATUS_="'''unbekannt'''
zuletzt war $STATUS_OPEN" IMAGE="$WIKI_IMAGE_OPEN" ;; $STATUS_CLOSED) STATUS_="'''unbekannt'''
zuletzt war $STATUS_CLOSED" IMAGE="$STATUS_MSG_CLOSED" ;; esac fi API_STATUS_MSG="$STATUS_MSG_CLOSED" WIKI_STATUS="[[File:$IMAGE|link=|right|frame|$STATUS_
seit $TIMESTAMP_LASTCHANGE_DATE]]" ;; esac # The status file for spaceapi.ccc.de and for our IRC bot. sed "s/%%STATUS%%/${API_STATUS}/;s/%%MESSAGE%%/${API_STATUS_MSG}/;s/%%LASTCHANGE%%/${TIMESTAMP_LASTCHANGE}/" $JSON_FILE_TEMPL > $JSON_FILE_TMP chown --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP chmod --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP mv $JSON_FILE_TMP $JSON_FILE echo -n "$WIKI_STATUS" #| php "$WIKI_PATH/maintenance/edit.php" -m -b --no-rc -s "$STATUS" "$WIKI_STATUS_PAGE" >> /dev/null 2>&1 #echo "$WIKI_MAIN_PAGE" | php "$WIKI_PATH/maintenance/purgeList.php" --purge >> /dev/null 2>&1