#!/bin/bash # #SYNOPSIS # //god/licht [options] [0/1] #OPTIONS # all - toggles all lights # links - toggles all lights on the left hand side while looking towards the Auditorium # rechts - toggles all lights on the right hand side while looking towards the Auditorium # kuschel - toggles the lights in the pwnie corner # software - toggles the software corner # tische - toggles the lights on the window side of the long table # porsche - toggles the lights on the window side where the porsche cockpit is # ghetto - toggles the lights in the hallway # 0-7 - toggles individual lights TOGGLE=`echo "$2" | sed -n '/^[0-1]/p'` shorthelp() { echo "Usage: $0 [OPTIONS] [0|1]" echo "Toggle the lights in the shack." } longhelp(){ shorthelp cat <<EOF OPTIONS all - toggles all lights links - toggles all lights on the left hand side while looking towards the Auditorium rechts - toggles all lights on the right hand side while looking towards the Auditorium kuschel - toggles the lights in the pwnie corner software - toggles the software corner tische - toggles the lights on the window side of the long table porsche - toggles the lights on the window side where the porsche cockpit is ghetto - toggles the lights in the hallway 0-7 - toggles individual lights EOF } toggle() { LAMPE=`echo "$1" | sed -n '/^[1-2]*[0-9]*[0-9]$/p' | xargs echo "obase=16;" | bc` if ! [ "$LAMPE" -a "$TOGGLE" ];then longhelp exit 1 fi STRING="\\xA5\\x5A\\x$LAMPE\\x$TOGGLE" if [ $# != 2 ] then longhelp exit 1 else echo "Toggle light $LAMPE ($TOGGLE)" printf "$STRING" | nc -u -w1 licht.shack 1337 fi } toggle_all() { for i in `seq 0 7` do toggle $i $TOGGLE done wait } kuschel(){ for i in 0 2 do toggle $i $TOGGLE done wait } software(){ for i in 1 3 do toggle $i $TOGGLE done wait } tische(){ for i in 4 6 do toggle $i $TOGGLE done wait } ghetto(){ i=7 toggle $i $TOGGLE } porsche(){ i=5 toggle $i $TOGGLE } case "$1" in (--help) if [ "$2" == "--verbose" ] then longhelp else shorthelp fi ;; all) toggle_all ;; kuschel) kuschel ;; software) software ;; links) kuschel software ;; rechts) tische porsche ghetto ;; tische) tische ;; porsche) porsche ;; ghetto) ghetto ;; *) toggle "$@" ;; esac