From 5cd5537f10749111b67bf67f8148b451bd40c06f Mon Sep 17 00:00:00 2001 From: Jack-Benny Persson Date: Sun, 27 Jul 2014 14:54:53 +0200 Subject: [PATCH] It's now in working state --- check_smhiwarn.php | 137 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 133 insertions(+), 4 deletions(-) diff --git a/check_smhiwarn.php b/check_smhiwarn.php index e212a29..6af13fd 100644 --- a/check_smhiwarn.php +++ b/check_smhiwarn.php @@ -1,15 +1,144 @@ \n"; + print "Usage: $GLOBALS[program] 'District'\n"; + print "Example: $GLOBALS[program] 'Skåne län utom Österlen'\n"; +} + +//All of the avaliable districts +$availDistricts = array( +"Skagerack", +"Vänern", +"Kattegatt", +"Bälten", +"Sydvästra Östersjön", +"Södra Östersjön", +"Sydöstra Östersjön", +"Mellersta Östersjön", +"Mellersta Östersjön", +"Norra Östersjön", +"Rigabukten", +"Finska viken", +"Skärgårdshavet", +"Södra Bottenhavet", +"Norra Bottenhavet", +"Norra Kvarken", +"Bottenviken", +"Dalarnas län, Dalafjällen", +"Jämtlands län, Härjedalsfjällen", +"Jämtlands län, Jämtlandsfjällen", +"Västerbottens län, södra Lapplandsfjällen", +"Norrbottens län, norra Lapplandsfjällen", +"Skåne län utom Österlen", +"Skåne län, Österlen", +"Blekinge län", +"Hallands län", +"Kronobergs län, västra delen", +"Kronobergs län, östra delen", +"Kalmar län, öland", +"Gotlands län", +"Jönköpings län, västra delen utom syd om Vättern", +"Jönköpings län, östra delen", +"Kalmar län utom öland", +"Jönköpings län, syd om Vättern", +"Västra Götalands län, Sjuhäradsbygden och Göta älv", +"Västra Götalands län, Bohuslän och Göteborg", +"Västra Götalands län, inre Dalsland", +"Västra Götalands län, sydväst Vänern", +"Västra Götalands län, norra Västergötland", +"Värmlands län", +"Södermanlands län", +"Stockholms län utom Roslagskusten.", +"Västmanlands län", +"Uppsala län utom Upplandskusten", +"Stockholms län, Roslagskusten", +"Uppsala län, Upplandskusten", +"Dalarnas län utom Dalafjällen", +"Gävleborgs län kustland", +"Gävleborgs län inland", +"Västernorrlands län", +"Jämtlands län utom fjällen", +"Västerbottens län kustland", +"Västerbottens län inland", +"Norrbottens län kustland", +"Norrbottens län inland", +); + +//Check if first argument is set +if (!isset($argv[1])) +{ + usage(); + exit($unknown); +} + +//Set first argument to $district +$district = $argv[1]; + +//Simple way of listing all the avaliable districts +if ($district == 'list') +{ + foreach ($availDistricts as $dist) + print "$dist\n"; + exit($unknown); +} + +//Check if the district exists +if (!preg_grep("/^$district$/", $availDistricts)) +{ + print "$district does not exists\n"; + print "List all avaliable districts by \"$program 'list'\"\n"; + exit($unknown); +} + + +// Retrive the data $data = file_get_contents("smhi_alla_varningar.xml"); -preg_match("/(Norrbottens län kustland)(?:: )(?:Varning klass )([1-3]+)(?:,\s)([-a-z0-9åäö.,&\s]*)/i", +//Regex the area (1st parathentis is area, 2nd is warning class, 3rd is warning msg) +preg_match("/($district)(?:: )(?:Varning klass )([1-3]+)(?:,\s)([-a-z0-9åäö.,&\s]*)/i", $data, $matches); +//Define the paranthesis +if (isset($matches[2])) +{ + $warnLevel = $matches[2]; + $warnMsg = $matches[3]; +} +else +{ + $warnLevel = 0; +} + +//Check for warnings... +switch ($warnLevel) +{ + case 0: + print "No warnings issued $district"; + exit($ok); + case 1: + print "Class 1 warning for $district issued, $warnMsg"; + exit($warning); + case 2: + print "Class 2 warning for $district, $warnMsg"; + exit($critical); + case 3: + print "Class 3 warning for $district, $warnMsg"; + exit($critical); + default: + print "Unknown error for $district"; + exit($unknown); +} -print "Area: $matches[1]\n"; -print "Class: $matches[2]\n"; -print "Msg: $matches[3]\n"; ?>