Manage static content for planet.openstreetmap.org
authorTom Hughes <tom@compton.nu>
Thu, 27 Jun 2013 08:39:00 +0000 (09:39 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 27 Jun 2013 08:41:04 +0000 (09:41 +0100)
cookbooks/planet/files/default/cgi/HEADER.cgi [new file with mode: 0755]
cookbooks/planet/files/default/html/HEADER.html [new file with mode: 0644]
cookbooks/planet/files/default/html/logo.png [new file with mode: 0644]
cookbooks/planet/files/default/html/robots.txt [new file with mode: 0644]
cookbooks/planet/files/default/html/style.css [new file with mode: 0644]
cookbooks/planet/recipes/default.rb

diff --git a/cookbooks/planet/files/default/cgi/HEADER.cgi b/cookbooks/planet/files/default/cgi/HEADER.cgi
new file mode 100755 (executable)
index 0000000..4762f91
--- /dev/null
@@ -0,0 +1,128 @@
+#!/usr/bin/env python
+
+from time import time
+from os import stat, environ
+from re import search
+
+def nice_size(file):
+    size = stat(file).st_size
+    KB = 1024.
+    MB = 1024. * KB
+    GB = 1024. * MB
+    TB = 1024. * GB
+    
+    if size < KB:
+        size, suffix = size, ''
+    elif size < MB:
+        size, suffix = size/KB, 'KB'
+    elif size < GB:
+        size, suffix = size/MB, 'MB'
+    elif size < TB:
+        size, suffix = size/GB, 'GB'
+    else:
+        size, suffix = size/TB, 'TB'
+    
+    if size < 10:
+        return '%.1f %s' % (round(size,1), suffix)
+    else:
+        return '%d %s' % (round(size), suffix)
+
+def nice_time(time):
+    if time < 15:
+        return 'moments'
+    if time < 90:
+        return '%d seconds' % time
+    if time < 60 * 60 * 1.5:
+        return '%d minutes' % (time / 60.)
+    if time < 24 * 60 * 60 * 1.5:
+        return '%d hours' % (time / 3600.)
+    if time < 7 * 24 * 60 * 60 * 1.5:
+        return '%d days' % (time / 86400.)
+    if time < 30 * 24 * 60 * 60 * 1.5:
+        return '%d weeks' % (time / 604800.)
+
+    return '%d months' % (time / 2592000.)
+
+def file_info(file, name):
+    size = nice_size(file)
+    hash = search(r'\w{32}', open(file+'.md5', 'r').read()).group(0)
+    date = nice_time(time() - stat(file).st_mtime)
+
+    return '<b><a href="%(file)s">%(name)s</a></b><br><b>%(size)s</b>, created %(date)s ago.<br><small>md5: %(hash)s</small>.' % locals()
+
+planet_link = file_info('planet/planet-latest.osm.bz2', 'Latest Weekly Planet File')
+changesets_link = file_info('planet/changesets-latest.osm.bz2', 'Latest Weekly Changesets')
+
+print """
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+ <head>
+  <title>Index of /</title>
+  <link href="style.css" rel="stylesheet" type="text/css">
+ </head>
+ <body>
+<img id="logo" src="logo.png" alt="OSM logo" width="128" height="128">
+<h1>Planet OSM</h1>
+
+<p>
+The files found here are regularly-updated, complete copies of the OpenStreetMap.org
+database, and those published before the 12 September 2012 are distributed under a Creative Commons Attribution-ShareAlike 2.0 license, those published after are  Open Data Commons Open Database License 1.0 licensed. For more information, <a href="http://wiki.openstreetmap.org/wiki/Planet.osm">see the project wiki</a>.
+</p>
+
+<table id="about">
+  <tr>
+    <th>
+        <h2>Complete OSM Data</h2>
+    </th>
+    <th>
+        <h2>Using The Data</h2>
+    </th>
+    <th>
+        <h2>Extracts &amp; Mirrors</h2>
+    </th>
+  </tr>
+  <tr>
+    <td>
+        <p>%(planet_link)s</p>
+        <p>%(changesets_link)s</p>
+        <p>
+        Each week, a new and complete copy of all data in OpenStreetMap is made
+        available as a compressed XML file, along with a smaller file with
+        complete metadata for all changes made since the previous week.
+        </p>
+    </td>
+    <td>
+        <p>
+        You are granted permission to use OpenStreetMap data by 
+        <a href="http://osm.org/copyright">the OpenStreetMap License</a>, which also describes 
+        your obligations.
+        </p>
+        <p>
+        You can <a href="http://wiki.openstreetmap.org/wiki/Planet.osm#Processing_the_File">process the file</a>
+        or extracts with a variety of tools. <a href="http://wiki.openstreetmap.org/wiki/Osmosis">Osmosis</a>
+        is a general-purpose command-line tool for converting the data among different formats
+        and databases, and <a href="http://wiki.openstreetmap.org/wiki/Osm2pgsql">Osm2pgsql</a>
+        is a tool for importing the data into a Postgis database for rendering maps.
+        </p>
+        <p>
+        <a href="http://wiki.openstreetmap.org/wiki/Coastline_error_checker">Processed coastline data</a>
+        derived from OSM data is also needed for rendering usable maps, and can be found in a
+        <a href="historical-shapefiles/processed_p.tar.bz2">single shapefile</a> (360MB).
+        </p>
+    </td>
+    <td>
+        <p>
+        The complete planet is very large, so you may prefer to use one of
+        <a href="http://wiki.openstreetmap.org/wiki/Planet.osm#Downloading">several periodic extracts</a>
+        (individual countries or states) from third parties. <a href="http://download.geofabrik.de/openstreetmap/">GeoFabrik.de</a>
+        and <a href="http://download.bbbike.org/osm/">BBBike.org</a> are two providers
+        of extracts with up-to-date worldwide coverage.
+        </p>
+    </td>
+  </tr>
+</table>
+
+<p>
+If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the <a href="http://wiki.openstreetmap.org/wiki/Data_working_group">OpenStreetMap Data Working Group</a>.
+</p>
+""" % locals()
diff --git a/cookbooks/planet/files/default/html/HEADER.html b/cookbooks/planet/files/default/html/HEADER.html
new file mode 100644 (file)
index 0000000..11de6d4
--- /dev/null
@@ -0,0 +1,3 @@
+<h1>planet.openstreetmap.org</h1>
+<p>If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the <a href="http://wiki.openstreetmap.org/wiki/Data_working_group">OpenStreetMap Data Working Group</a>.</p>
+<p><a href="http://wiki.openstreetmap.org/wiki/Planet.osm">More Information about Planet.osm</a></p>
diff --git a/cookbooks/planet/files/default/html/logo.png b/cookbooks/planet/files/default/html/logo.png
new file mode 100644 (file)
index 0000000..65dab46
Binary files /dev/null and b/cookbooks/planet/files/default/html/logo.png differ
diff --git a/cookbooks/planet/files/default/html/robots.txt b/cookbooks/planet/files/default/html/robots.txt
new file mode 100644 (file)
index 0000000..3f3940c
--- /dev/null
@@ -0,0 +1,8 @@
+#No bz2 chomping bots please
+
+User-agent: wget
+Allow: /
+
+User-agent: *
+Disallow: /
+
diff --git a/cookbooks/planet/files/default/html/style.css b/cookbooks/planet/files/default/html/style.css
new file mode 100644 (file)
index 0000000..0a7afa9
--- /dev/null
@@ -0,0 +1,54 @@
+body,
+table#about tr *
+{
+    font-family: sans-serif;
+    line-height: 1.25em;
+}
+
+body { margin: 2em; }
+img#logo { float: left; }
+img#logo, h1 { margin: 0 1em 0 0; }
+a { white-space: nowrap; }
+
+li { margin-bottom: 1em; }
+body>p { width: 42em; }
+
+table#about
+{
+    clear: left;
+    margin: 3em 0 2em 0;
+}
+
+table tr th { text-align: left; }
+
+table tr td
+{
+    padding-right: 1em;
+    vertical-align: top;
+}
+
+/* first column: icon */
+table tr td:first-child
+{
+    padding-left: 1em;
+    padding-right: .25em;
+}
+
+/* last two columns: date and size */
+table tr td + td + td,
+table tr td + td + td + td
+{
+    font-size: 90%;
+    font-family: monospace;
+    white-space: pre;
+}
+
+/* override a bunch of the stuff above */
+table#about tr th,
+table#about tr td
+{
+    width: 20em;
+    padding: 0 1em 0 0;
+    font-size: 100%;
+    white-space: normal;
+}
index 925915f2e3a96793e95348443c7120c3f6067665..c9e99852405afb2a346a790e624712e230d06efc 100644 (file)
@@ -41,6 +41,26 @@ template "/etc/cron.d/planet" do
   mode 0644
 end
 
+remote_directory "/store/planet" do
+  source "html"
+  owner "root"
+  group "root"
+  mode "0755"
+  files_owner "root"
+  files_group "root"
+  files_mode 0644
+end
+
+remote_directory "/store/planet" do
+  source "cgi"
+  owner "root"
+  group "root"
+  mode 0755
+  files_owner "root"
+  files_group "root"
+  files_mode 0755
+end
+
 apache_module "rewrite" do
   conf "rewrite.conf.erb"
 end