#!/bin/csh -f # Talking Clock version 2.3 (c) 97/4/25 Holm Sieber # shell script for a talking clock via crontab # parameter set play = /usr/X11R6/bin/play set wavpath = /usr/share/sounds/clock set logfile = /var/log/soundlog #set logfile = ./soundlog # get actual time (using GNU date) or use test mode if ( $2 == test ) then set hour = $3 set hour24 = $4 set minute = $5 else set hour = `date +%I` set hour24 = `date +%H` set minute = `date +%M` endif echo -n "Call TC at ${hour24}:${minute} : " >> $logfile # if minute == { 00 | 15 | 30 | 45 } then ring set gong = 0 if ( $minute == 00 ) set gong = 4 if ( $minute == 15 ) set gong = 1 if ( $minute == 30 ) set gong = 2 if ( $minute == 45 ) set gong = 3 if ( $gong > 0 | $1 == "" ) then # switch clock type switch ( $1 ) case cuckoo: # Cuckoo Clock echo -n "type Cuckoo - " >> $logfile if ( $minute == 00 ) then echo -n "$hour * Dumm" >> $logfile while ( $hour > 0 ) $play $wavpath/cuckoo.wav >& /dev/null @ hour -- end endif breaksw case church: # Church Clock echo -n "type Church - " >> $logfile while ( $gong > 0 ) echo -n "G " >> $logfile $play $wavpath/gg_mi.wav >& /dev/null @ gong -- end sleep 2 if ( $minute == 00 ) then while ( $hour > 1 ) echo -n "D " >> $logfile $play $wavpath/gg_stk.wav >& /dev/null @ hour -- end echo -n "D " >> $logfile $play $wavpath/gg_stl.wav >& /dev/null endif breaksw case talk: # Talking Clock echo -n "type Talk - " >> $logfile echo -n "$hour24 " >> $logfile $play $wavpath/${hour24}_en.wav >& /dev/null if ( $minute == 00 ) then echo -n o\'clock >> $logfile $play $wavpath/oclock.wav >& /dev/null else echo -n $minute >> $logfile $play $wavpath/${minute}_en.wav >& /dev/null endif breaksw case german: # German Talking Clock echo -n "type German - " >> $logfile echo -n "$hour24 " >> $logfile $play $wavpath/${hour24}_gr.wav >& /dev/null if ( $minute == 00 ) then echo -n Uhr >> $logfile $play $wavpath/uhr.wav >& /dev/null else echo -n "Uhr " >> $logfile echo -n $minute >> $logfile $play $wavpath/uhr.wav >& /dev/null $play $wavpath/${minute}_gr.wav >& /dev/null endif breaksw default: # Error - no permited parameter or none parameter echo error - clock type unknown echo syntax: echo " talking.clock { cuckoo | church | talk | german } \\ \ [ test ]" echo -n "error - clock type unknown" >> $logfile endsw # end of switch else echo -n nothing to do >> $logfile endif echo "" >> $logfile # unset variables unset play unset wavpath unset logfile unset hour unset hour24 unset minute unset gong