forecast_alert.sh (1112B)
1 #!/bin/bash 2 recipient=("andersd@riseup.net") 3 latitude=40.330 4 longitude=-74.5647 5 6 function fetch { 7 curl --location --silent \ 8 "http://f1.weather.gov/MapClick.php?w0=t&w1=td&w2=wc&w3=sfcwind&w3u=3&w4=sky&w5=pop&w6=rh&w7=rain&w8=thunder&w9=snow&w10=fzg&w11=sleet&w12=fog&w13u=0&w16u=1&w17u=1&AheadHour=0&Submit=Submit&FcstType=digital&textField1=${1}&textField2=${2}&site=all&unit=0&dd=&bw=&menu=1"|\ 9 w3m -T text/html | cat - 10 } 11 12 out=$(fetch $latitude $longitude) 13 14 # any fog in the next 48 hours? 15 keyword="Fog" 16 if echo "$out" | grep "^$keyword" | grep '[A-Z]' >/dev/null; then 17 18 message=$(cat <<-END 19 Next 24 hours: 20 $(echo "$out" | grep "^Hour (EST)" | head -n 1) 21 $(echo "$out" | grep "^$keyword" | head -n 1) 22 23 Following 24 hours: 24 $(echo "$out" | grep "^Hour (EST)" | tail -n 1) 25 $(echo "$out" | grep "^$keyword" | tail -n 1) 26 END 27 ) 28 29 30 for i in "${recipient[@]}"; do 31 echo "$message" | \ 32 mutt -F muttrc \ 33 -s "$keyword at ($latitude,$longitude) within the next 48 hours" \ 34 -- $i 35 done 36 37 else 38 echo "No $keyword predicted within the next 48 hours" 39 fi