]> git.openstreetmap.org Git - dns.git/blobdiff - bin/mkgeo
Rename ouroboros to ridgeback
[dns.git] / bin / mkgeo
index ce98991c345d38339f7e0292044226742200573d..f7e6d818a0e2fe82b9376b8f17e2ced43d697271 100755 (executable)
--- a/bin/mkgeo
+++ b/bin/mkgeo
@@ -15,24 +15,30 @@ my $source = shift @ARGV;
 my $zone = shift @ARGV;
 my $servers = YAML::LoadFile("src/${source}");
 
-my $ua = LWP::UserAgent->new;
-
-$ua->default_header("App-Key", "2cohi62u5haxvqmypk3ljqqrze1jufrh");
-$ua->credentials("api.pingdom.com:443", "Pingdom API", $ENV{PINGDOM_USERNAME}, $ENV{PINGDOM_PASSWORD});
-
 foreach my $server (values %$servers)
 {
     $server->{status} = "down";
+}
 
-    if (my $checkid = $server->{pingdom})
-    {
-        my $response = $ua->get("https://api.pingdom.com/api/2.0/checks/${checkid}");
+if ($ENV{PINGDOM_USERNAME} && $ENV{PINGDOM_PASSWORD})
+{
+    my $ua = LWP::UserAgent->new;
 
-        if ($response->is_success)
+    $ua->default_header("App-Key", "2cohi62u5haxvqmypk3ljqqrze1jufrh");
+    $ua->credentials("api.pingdom.com:443", "Pingdom API", $ENV{PINGDOM_USERNAME}, $ENV{PINGDOM_PASSWORD});
+
+    foreach my $server (values %$servers)
+    {
+        if (my $checkid = $server->{pingdom})
         {
-            my $check = decode_json($response->content);
+            my $response = $ua->get("https://api.pingdom.com/api/2.0/checks/${checkid}");
+
+            if ($response->is_success)
+            {
+                my $check = decode_json($response->content);
 
-            $server->{status} = $check->{check}->{status};
+                $server->{status} = $check->{check}->{status};
+            }
         }
     }
 }
@@ -48,10 +54,10 @@ foreach my $country ($countries->look_down("_tag" => "country"))
     my $code = $country->look_down("_tag" => "countryCode")->as_text;
     my $name = $country->look_down("_tag" => "countryName")->as_text;
     my $continent = $country->look_down("_tag" => "continent")->as_text;
-    my $west = $country->look_down("_tag" => "bBoxWest")->as_text;
-    my $north = $country->look_down("_tag" => "bBoxNorth")->as_text;
-    my $east = $country->look_down("_tag" => "bBoxEast")->as_text;
-    my $south = $country->look_down("_tag" => "bBoxSouth")->as_text;
+    my $west = $country->look_down("_tag" => "west")->as_text;
+    my $north = $country->look_down("_tag" => "north")->as_text;
+    my $east = $country->look_down("_tag" => "east")->as_text;
+    my $south = $country->look_down("_tag" => "south")->as_text;
     my $lat = centre_lat( $south, $north );
     my $lon = centre_lon( $west, $east );
     my @servers;
@@ -103,6 +109,10 @@ foreach my $country (values %countries)
     {
         $clon = $clon - 360;
     }
+    elsif ($slon > 0 && $clon < 0 && 360 + $clon - $slon < $slon - $clon)
+    {
+        $slon = $slon - 360;
+    }
 
     $zonefile->print("C\L$country->{code}\E.${zone}:$servers[0]->{name}.${zone}:600\n");