#!/usr/bin/env bash [ ! -z "$DEBUG" ] && set -x set -eu function write_html { status=$1 STATUS_HTML=/srv/www/spacestatus.html TEMPLATE_HTML='Status /usr/space: %s

%s

' CLOSED_HTML='Closed darkred Closed' OPEN_HTML='Open brightgreen Open' if [ "$status" -gt 0 ] then printf "$TEMPLATE_HTML" $OPEN_HTML > $STATUS_HTML else printf "$TEMPLATE_HTML" $CLOSED_HTML > $STATUS_HTML fi } function write_json { status=$1 STATUS_JSON=/srv/www/spacestatus.json TEMPLATE_JSON=$( cat /usr/local/etc/spacestatus.json ) CLOSED_JSON='false' OPEN_JSON='true' if [ "$status" -gt 0 ] then printf "$TEMPLATE_JSON" $OPEN_JSON > $STATUS_JSON else printf "$TEMPLATE_JSON" $CLOSED_JSON > $STATUS_JSON fi } tmpcount=$(mktemp) exec 3>$tmpcount /usr/sbin/dhcp-lease-list --parsable | awk '{print $4}' | while read ip do /usr/bin/arping -w 1 -f -q $ip [ $? -eq 0 ] && echo 1 >&3 done exec 3>&- leases=$( cat $tmpcount | wc -l ) write_html $leases write_json $leases rm $tmpcount