diff options
-rwxr-xr-x | modules/shackstatus | 127 | ||||
-rwxr-xr-x | modules/stream | 50 |
2 files changed, 177 insertions, 0 deletions
diff --git a/modules/shackstatus b/modules/shackstatus new file mode 100755 index 00000000..d05dba87 --- /dev/null +++ b/modules/shackstatus @@ -0,0 +1,127 @@ +#! /bin/bash +inputdir=$HOME/noise/streams + +speak () { + echo "$@" >> $NOISE_linefeed +} + +wochentag () { + case $(date +%a) in + Mon) echo Montag ;; + Tue) echo Dienstag ;; + Wed) echo Mittwoch ;; + Thu) echo Donnerstag ;; + Fri) echo Freitag ;; + Sat) echo Samstag ;; + Sun) echo Sonntag ;; + esac +} + +tag () { + case $(date +%d) in + 1) echo erste ;; + 2) echo zweite ;; + 3) echo dritte ;; + 4) echo vierte ;; + 5) echo fünfte ;; + 6) echo sechste ;; + 7) echo siebte ;; + 8) echo achte ;; + 9) echo neunte ;; + 10) echo zehnte ;; + 11) echo elfte ;; + 12) echo zwölfte ;; + 13) echo dreizehnte ;; + 14) echo vierzehnte ;; + 15) echo fünfzehnte ;; + 16) echo sechzehnte ;; + 17) echo siebzehnte ;; + 18) echo achtzehnte ;; + 19) echo neunzehnte ;; + 20) echo zwanzigste ;; + 21) echo einundzwanzigste ;; + 22) echo zweiundzwanzigste ;; + 23) echo dreiundzwanzigste ;; + 24) echo vierundzwanzigste ;; + 25) echo füfundzwanzigste ;; + 26) echo sechsundzwanzigste ;; + 27) echo siebenundzwanzigste ;; + 28) echo achtundzwanzigste ;; + 29) echo neunundzwanzigste ;; + 30) echo dreissigste ;; + 31) echo einunddreissigste ;; + esac +} + +monat () { + case $(date +%b) in + Jan) echo Januar ;; + Feb) echo Februar ;; + Mar) echo März ;; + Apr) echo April ;; + May) echo Mai ;; + Jun) echo Juni ;; + Jul) echo Juli ;; + Aug) echo August ;; + Sep) echo September ;; + Oct) echo Oktober ;; + Nov) echo November ;; + Dec) echo Dezember ;; + esac +} + +case "$1" in + (--help) + echo "report status of all shack services." + ;; + (*) +# just a multiline comment +cat << EOF > /dev/null + /set pitch 10 + /espeak Hallo. Krietscher hat seinen Meister vermisst. + /espeak Heute ist `wochentag`, der `tag` --- `monat` -- `date +%Y` + /zeit + /espeak check der systeme: + /espeak Energie versorgung -- aktiv + /espeak schäckhost -- läuft + /espeak telnet -- läuft + /espeak interner - de - enn -- es, interne domein -- $STAT_DNS_I + /espeak interner - de - enn -- es, externe domein -- $STAT_DNS_E + /espeak externer - de - enn -- es - $STAT_DNS_X + /espeak Leitungsqualität - $STAT_LINE prozent. + /espeak Die Aussen temper atur beträgt $STAT_TEMP + /espeak Willkommen zu Hause, -- Meister +EOF + +[ $( dig +short localhost @10.42.0.10 ) = "127.0.0.1" ] && STAT_DNS_I="läuft" || STAT_DNS_I="antwortet nicht" +[ $( dig +short shackspace.de @10.42.0.10 ) = "141.31.176.214" ] && STAT_DNS_E="läuft"|| STAT_DNS_E="antwortet nicht" +[ $( dig +short shackspace.de @141.31.176.214 ) = "141.31.176.214" ] && STAT_DNS_X="läuft"|| STAT_DNS_X="antwortet nicht" + +STAT_LINE=$( ping -c 5 -i 0.2 -q 141.31.176.214 | awk '/packet loss/ { print 100-$6}' ) +STAT_TEMP=$( dig +short txt outside.elwood.temp.citecs.de | + sed 's/^"DEG //; + s/"$//; + s/^-/minus /; + s/\./ komma /; + s/\(.\)$/ \1 grad zelsius/ + ' +) + +cat <<-EOF >> $NOISE_linefeed + /set pitch 10 + /espeak Hallo. Krietscher hat seinen Meister vermisst. + /espeak Heute ist `wochentag`, der `tag` --- `monat` -- `date +%Y` + /zeit + /espeak check der systeme: + /espeak Energie versorgung -- aktiv + /espeak schäckhost -- läuft + /espeak telnet -- läuft + /espeak interner - de - enn -- es, interne domein -- $STAT_DNS_I + /espeak interner - de - enn -- es, externe domein -- $STAT_DNS_E + /espeak externer - de - enn -- es - $STAT_DNS_X + /espeak Leitungsqualität - $STAT_LINE prozent. + /espeak Die Aussen temper atur beträgt $STAT_TEMP + /espeak Willkommen zu Hause, -- Meister +EOF + ;; +esac 2>&1 diff --git a/modules/stream b/modules/stream new file mode 100755 index 00000000..76e86317 --- /dev/null +++ b/modules/stream @@ -0,0 +1,50 @@ +#! /bin/sh +inputdir=$HOME/noise/streams +case "$1" in + (--help) + echo "play an audio stream" ;; + (*) + exec 2>&1 + ffs='xml' + + if test -z "$*" ; then + echo -e "\x1B[32m/stream off \x1B[33m- turn stream off\x1B[m" + for i in `ls $inputdir` ; do + filename="$inputdir/$i" + shortcut=`xmlstarlet sel -t -v /station/@shortcut "$inputdir/$i"` + title=`xmlstarlet sel -t -v /station/@title "$inputdir/$i"` + topic=`xmlstarlet sel -t -v /station/@topic "$inputdir/$i"` + stream=`xmlstarlet sel -t -v /station/@stream "$inputdir/$i"` + echo -e "\x1B[32m/stream $shortcut \x1B[33m- $title \x1B[35m$topic\x1B[m" + done + else if [ "$1" = "off" ]; then + [ ! -d /tmp/noise ] || ( echo "no directory /tmp/noise; aborting" ; exit 1 ) + [ -f /tmp/noise/stream.pid ] && ( kill ` cat /tmp/noise/stream.pid ` ) + [ -e /tmp/noise/stream.pid ] && rm /tmp/noise/stream.pid || ( echo "can't remove /tmp/noise/stream.pid; aborting" ; exit 1 ) + else + for i in `ls $inputdir` ; do + filename="$inputdir/$i" + shortcut=`xmlstarlet sel -t -v /station/@shortcut "$inputdir/$i"` + stream=`xmlstarlet sel -t -v /station/@stream "$inputdir/$i"` + if [ "$shortcut" == "$1" ]; then + [ ! -d /tmp/noise ] || ( umask 077 ; mkdir /tmp/noise ) || ( echo "can't create /tmp/noise; aborting" ; exit 1 ) + [ -f /tmp/noise/stream.pid ] && ( kill ` cat /tmp/noise/stream.pid ` ) + [ -e /tmp/noise/stream.pid ] && rm /tmp/noise/stream.pid || ( echo "can't remove /tmp/noise/stream.pid; aborting" ; exit 1 ) + mplayer -cache 2048 -quiet "$stream" & + ( umask 077 ; echo $! > /tmp/noise/stream.pid ) + break + fi + done || cat<<EOF +[33m\ +Keine Audiostreambeschreibung mit dem Namen + + [4m$1[;33m.EXT + +gefunden... am besten gleich anlegen: + + ssh shack@shack.shack:noise/streams/ + +folgende Dateiendungen werden erkannt: $ffs[m +EOF + fi fi +esac |