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 | 
