Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
8870f5f7a7 | |||
b68349b3b4 | |||
14478c670e | |||
22fd8cc1c4 | |||
d3a1272c57 | |||
da9b53e9b7 | |||
2f6e516856 |
16
CHANGELOG
16
CHANGELOG
@ -1,4 +1,20 @@
|
|||||||
2014-01-03
|
2014-01-03
|
||||||
Version 0.1 - First release of the plugin
|
Version 0.1 - First release of the plugin
|
||||||
|
|
||||||
|
2014-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.
|
||||||
|
|
||||||
|
2014-01-09
|
||||||
|
Version 0.3 - SMHI has changed österlen to Österlen in the text. Updated this
|
||||||
|
in the hardcoded region/district names.
|
||||||
|
|
||||||
|
2014-01-09
|
||||||
|
Version 0.4 - Fixed an important bug. If the district/region did not exist
|
||||||
|
the script exited with a status 0 (OK). This should be status 3
|
||||||
|
(Unknown). This is now fixed.
|
||||||
|
@ -21,14 +21,14 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# check_smhi
|
# check_smhi
|
||||||
Version="0.1"
|
Version="0.4"
|
||||||
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=""
|
||||||
@ -59,8 +59,8 @@ AvailDistricts=(
|
|||||||
"Jämtlands län, Jämtlandsfjällen"
|
"Jämtlands län, Jämtlandsfjällen"
|
||||||
"Västerbottens län, södra Lapplandsfjällen"
|
"Västerbottens län, södra Lapplandsfjällen"
|
||||||
"Norrbottens län, norra Lapplandsfjällen"
|
"Norrbottens län, norra Lapplandsfjällen"
|
||||||
"Skåne län utom österlen"
|
"Skåne län utom Österlen"
|
||||||
"Skåne län, österlen"
|
"Skåne län, Österlen"
|
||||||
"Blekinge län"
|
"Blekinge län"
|
||||||
"Hallands län"
|
"Hallands län"
|
||||||
"Kronobergs län, västra delen"
|
"Kronobergs län, västra delen"
|
||||||
@ -113,7 +113,7 @@ print_help()
|
|||||||
Options:
|
Options:
|
||||||
-D
|
-D
|
||||||
District to check for wheather alerts.
|
District to check for wheather alerts.
|
||||||
NOTE: Districts must be quoted, such as "Skåne län utom österlen"
|
NOTE: Districts must be quoted, such as "Skåne län utom Österlen"
|
||||||
-P
|
-P
|
||||||
Print a list with all the avaliable districts.
|
Print a list with all the avaliable districts.
|
||||||
-h
|
-h
|
||||||
@ -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
|
||||||
@ -195,16 +195,17 @@ done
|
|||||||
if [ $Match -eq 0 ]; then
|
if [ $Match -eq 0 ]; then
|
||||||
echo "District $District does not exist"
|
echo "District $District does not exist"
|
||||||
print_help
|
print_help
|
||||||
|
exit $State_unknown
|
||||||
fi
|
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/å/\å\;/g
|
s/å/\å\;/g
|
||||||
s/Å/\Å\;/g
|
s/Å/\Å\;/g
|
||||||
s/ä/\ä\;/g
|
s/ä/\ä\;/g
|
||||||
@ -214,17 +215,24 @@ s/Ö/\Ö\;/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/\å\;/å/g
|
||||||
|
s/\Å\;/Å/g
|
||||||
|
s/\ä\;/ä/g
|
||||||
|
s/\Ä\;/Å/g
|
||||||
|
s/\ö\;/ö/g
|
||||||
|
s/\Ö\;/Ö/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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user