You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
4.7 KiB

#!/bin/bash
#
# $Id: playWxAlertBg 74 2011-04-20 19:55:19Z $
#
# Play weather alerts Announcements
# Normally placed in background from getWxAlert.
# by W0ANM
#
# My process id
MYPROC=$$
# Load config file
if [ -f ${CUSTOM}/wx_scripts.conf ] ; then
source ${CUSTOM}/wx_scripts.conf
else
echo "Missing ${CUSTOM}/wx_scripts.conf file, aborting..."
exit 1
fi
# multiple zone support.
# if COUNTY not an argument, then use what is defined in configure file.
if [ "$1" = "" ] ; then
COUNTY=$COUNTY
else
COUNTY=$1
fi
# if argument is not a directory, abort and do nothing. send error
if [ ! -d /custom/wx/alert/$COUNTY ] ; then
# msg to log file.
log "COUNTY directory $COUNTY is not present, aborting..."
exit 1
fi
WXALERT_TEXT=${WXALERT_SPOOLDIR}/$COUNTY/alert.txt
NO_WXALERT_MSG=$LOCAL/no_wxalert_msg
# store the PID
echo "$$" > $WXALERT_SPOOLDIR/$COUNTY/playWxAlertBg.pid
##########
PlayMsg () {
# /usr/sbin/asterisk -rx "rpt localplay 27539 /custom/wx/alert/$COUNTY/ALERT" &> /dev/null 2>&1
# /usr/local/bin/texttransmit N8MFN__B -f /custom/wx/alert/OHC017/wx_new.txt
# /home/irlp/custom/dstartx
#/usr/local/bin/voicetransmit N8MFN _B /custom/wx/alert/$COUNTY/ALERT.dvtool
# /root/voice-ann/ambestream -t "Current Wx Alert" -v -4 -my N8MFN -d 141.148.63.71 -bi 7500 -bl 1000 -p 40000 XLX265 B /custom/wx/alert/OHC017/ALERT.dvtool > /dev/null 2>&1
/root/voice-ann/ambestream -t "Current Wx Alert" -v -4 -my N8MFN -d 10.147.17.8 -bi 7500 -bl 1000 -p 40000 N8MFN B /custom/wx/alert/OHC017/ALERT.dvtool > /dev/null 2>&1
# curl -X POST https://home.kb8pmy.net/api/webhook/play_weather_alert
# curl -X POST -H 'Content-type: application/json' --data '{"text":"WRJI518, Testing intergration!"}' https://hooks.slack.com/services/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
# curl -X POST --silent --data-urlencode "payload={\"text\": \"$(cat /custom/wx/alert/$COUNTY/alert.txt | sed "s/\"/'/g")\"}" "$2" https://hooks.slack.com/services/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
} # end PlayMsg
##########
PlayAlert() {
# Play Alert Message
log "$Msg"
PlayMsg
}
#######################################################################
# Main Program
# Run's in background, called by getWxAlert
while [ -f $WXALERT_TEXT ] ; do
# initial broadcast
# check if lock file is present. If so, wait for file to be
# removed, this prevents alert announcements from simultaneioulsy
# being sent.
# if NO_WXALERT file is present, skip playing msg
if [ ! -f $NO_WXALERT_MSG ] ; then
while [ -f /tmp/playWxAlertBg-lock ] ; do
sleep 30
done
# set lock file
echo $MYPROC > /tmp/playWxAlertBg-lock
Msg="Playing Wx Alert (initial) for $COUNTY"
PlayAlert
# clear lock file
rm /tmp/playWxAlertBg-lock
else
log "Skipping Wx Alert (initial) for $COUNTY, $NO_WXALERT_MSG present"
fi
# play time is initial, 15m, 15m, 15m, 30m, 30m, then every 60m
for SLEEPTIME in 900 900 900 1800 1800 ; do
# for SLEEPTIME in 86400 ; do
# sleep 15 mins (900)
sleep $SLEEPTIME
if [ ! -f $WXALERT_TEXT ] ; then
break
fi
if [ ! -f $NO_WXALERT_MSG ] ; then
# check if lock file is present. If so, wait for file to be
# removed, this prevents alert announcements from simultaneioulsy
# being sent.
while [ -f /tmp/playWxAlertBg-lock ] ; do
sleep 30
done
# set lock file
echo $MYPROC > /tmp/playWxAlertBg-lock
Msg="Playing Wx Alert (${SLEEPTIME}s) for $COUNTY"
PlayAlert
# clear lock file
rm /tmp/playWxAlertBg-lock
else
log "Skipping Wx Alert (${SLEEPTIME}s) for $COUNTY, $NO_WXALERT_MSG present"
fi
done
while [ -f $WXALERT_TEXT ] ; do
#every 60m
sleep 3600
if [ ! -f $WXALERT_TEXT ] ; then
break
fi
if [ ! -f $NO_WXALERT_MSG ] ; then
# check if lock file is present.
while [ -f /tmp/playWxAlertBg-lock ] ; do
sleep 30
done
# set lock file
echo $MYPROC > /tmp/playWxAlertBg-lock
Msg="Playing Wx Alert (${SLEEPTIME}s) for $COUNTY"
PlayAlert
# clear lock file
rm /tmp/playWxAlertBg-lock
else
log "Skipping Wx Alert (${SLEEPTIME}s) for $COUNTY, $NO_WXALERT_MSG present"
fi
done
done
# remove PID file
rm $WXALERT_SPOOLDIR/$COUNTY/playWxAlertBg.pid
# remove NO_WXALERT_MSG file
if [ -f $NO_WXALERT_MSG ] ; then
rm -r $NO_WXALERT_MSG
fi
log "Alert over for $COUNTY"
exit 0

Powered by TurnKey Linux.