2 Commits
v0.1 ... v0.2

Author SHA1 Message Date
da9b53e9b7 Fixed two bugs 2014-01-04 10:37:41 +01:00
2f6e516856 Replaced some hardcoded binaries with variables 2014-01-03 15:35:41 +01:00
2 changed files with 28 additions and 12 deletions

View File

@@ -1,4 +1,13 @@
2014-01-03 2014-01-03
Version 0.1 - First release of the plugin Version 0.1 - First release of the plugin
2013-01-04
Version 0.2 - Fixed two bugs, whereas one important
1. In case there more than one wheater alert for the specified
region, the script would bug out. Fixed by adding 'head -n1'
so that it always only shows the first warning issued.
2. In case there were swedish characters (åäö) in the warning
message they would output as their HTML-equivalent. Fixed
with another sed substitue command.

View File

@@ -21,14 +21,14 @@
################################################################################ ################################################################################
# check_smhi # check_smhi
Version="0.1" Version="0.2"
Author="Jack-Benny Persson (jack-benny@cyberinfo.se)" Author="Jack-Benny Persson (jack-benny@cyberinfo.se)"
# Binaries # Binaries
Which="/usr/bin/which" Which="/usr/bin/which"
# Binaries entered in the list will be avalible to the script as variables with # Binaries entered in the list will be avalible to the script as variables with
# the first letter uppercase # the first letter uppercase
Binaries=(sed awk egrep printf curl) Binaries=(sed awk egrep printf curl head)
# Variables # Variables
District="" District=""
@@ -145,7 +145,7 @@ if [ $# -eq 0 ]; then
exit $State_unknown exit $State_unknown
elif [ $# -ge 1 ]; then elif [ $# -ge 1 ]; then
echo "$1" | egrep -q "\-." echo "$1" | $Egrep -q "\-."
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "$0 requires an option" echo "$0 requires an option"
print_help print_help
@@ -184,7 +184,7 @@ Index=0
Match=0 Match=0
while [ $Index -lt $Tot ]; do while [ $Index -lt $Tot ]; do
echo ${AvailDistricts[$Index]} | egrep -x "$District" &> /dev/null echo ${AvailDistricts[$Index]} | $Egrep -x "$District" &> /dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
Match=1 Match=1
break break
@@ -201,10 +201,10 @@ fi
### Main ### ### Main ###
# Fetch the warning page # Fetch the warning page
Data=`curl -s http://www.smhi.se/vadret/vadret-i-sverige/Varningar/varning_tabell_n1_sv.htm` Data=`$Curl -s http://www.smhi.se/vadret/vadret-i-sverige/Varningar/varning_tabell_n1_sv.htm`
# First we must replace all åäö with their HTML equivalent # First we must replace all åäö with their HTML equivalent
HtmlDist=`echo $District | sed '{ HtmlDist=`echo $District | $Sed '{
s/å/\&aring\;/g s/å/\&aring\;/g
s/Å/\&Aring\;/g s/Å/\&Aring\;/g
s/ä/\&auml\;/g s/ä/\&auml\;/g
@@ -214,17 +214,24 @@ s/Ö/\&Ouml\;/g
}'` }'`
# Get the line number for the current district in the HTML-file and add one line to it # Get the line number for the current district in the HTML-file and add one line to it
LineNr=`echo "$Data" | sed -n "/$HtmlDist/="` LineNr=`echo "$Data" | $Sed -n "/$HtmlDist/=" | $Head -n1`
((LineNr++)) ((LineNr++))
# Read the warning message (for example kuling, orkan, åska) # Read the warning message (for example kuling, orkan, åska)
WarnMsg=`echo "$Data" | sed -n "${LineNr}p" | egrep -o "Varning klass [0-3] .*" | \ WarnMsg=`echo "$Data" | $Sed -n "${LineNr}p" | $Egrep -o "Varning klass [0-3] .*" | \
sed 's/\(.*\).........../\1/' | \ $Sed 's/\(.*\).........../\1/' | \
awk '{print substr($0, index($0,$4))}'` $Awk '{print substr($0, index($0,$4))}' | $Sed '{
s/\&aring\;/å/g
s/\&Aring\;/Å/g
s/\&auml\;/ä/g
s/\&Auml\;/Å/g
s/\&ouml\;/ö/g
s/\&Ouml\;/Ö/g
}'`
# Get the current warning class (1, 2 and 3) # Get the current warning class (1, 2 and 3)
Class=`echo "$Data" | sed -n "${LineNr}p" | egrep -o "Varning klass [0-3]" \ Class=`echo "$Data" | $Sed -n "${LineNr}p" | $Egrep -o "Varning klass [0-3]" \
| awk '{ print $3 }'` | $Awk '{ print $3 }'`
# Chech the current warning class issued for the district # Chech the current warning class issued for the district
if [ -z $Class ]; then if [ -z $Class ]; then