From: Tom Hughes Date: Thu, 27 Jun 2013 08:39:00 +0000 (+0100) Subject: Manage static content for planet.openstreetmap.org X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/9037f0d00889ce2b1135263df9bbe6216c2a1280?hp=cb5f0da0d5c1e54318bb10ea9609b256876bce41 Manage static content for planet.openstreetmap.org --- diff --git a/cookbooks/planet/files/default/cgi/HEADER.cgi b/cookbooks/planet/files/default/cgi/HEADER.cgi new file mode 100755 index 000000000..4762f9145 --- /dev/null +++ b/cookbooks/planet/files/default/cgi/HEADER.cgi @@ -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 '%(name)s
%(size)s, created %(date)s ago.
md5: %(hash)s.' % 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 """ + + + + Index of / + + + + +

Planet OSM

+ +

+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, see the project wiki. +

+ + + + + + + + + + + + +
+

Complete OSM Data

+
+

Using The Data

+
+

Extracts & Mirrors

+
+

%(planet_link)s

+

%(changesets_link)s

+

+ 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. +

+
+

+ You are granted permission to use OpenStreetMap data by + the OpenStreetMap License, which also describes + your obligations. +

+

+ You can process the file + or extracts with a variety of tools. Osmosis + is a general-purpose command-line tool for converting the data among different formats + and databases, and Osm2pgsql + is a tool for importing the data into a Postgis database for rendering maps. +

+

+ Processed coastline data + derived from OSM data is also needed for rendering usable maps, and can be found in a + single shapefile (360MB). +

+
+

+ The complete planet is very large, so you may prefer to use one of + several periodic extracts + (individual countries or states) from third parties. GeoFabrik.de + and BBBike.org are two providers + of extracts with up-to-date worldwide coverage. +

+
+ +

+If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the OpenStreetMap Data Working Group. +

+""" % locals() diff --git a/cookbooks/planet/files/default/html/HEADER.html b/cookbooks/planet/files/default/html/HEADER.html new file mode 100644 index 000000000..11de6d461 --- /dev/null +++ b/cookbooks/planet/files/default/html/HEADER.html @@ -0,0 +1,3 @@ +

planet.openstreetmap.org

+

If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the OpenStreetMap Data Working Group.

+

More Information about Planet.osm

diff --git a/cookbooks/planet/files/default/html/logo.png b/cookbooks/planet/files/default/html/logo.png new file mode 100644 index 000000000..65dab465e 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 index 000000000..3f3940cbc --- /dev/null +++ b/cookbooks/planet/files/default/html/robots.txt @@ -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 index 000000000..0a7afa9d0 --- /dev/null +++ b/cookbooks/planet/files/default/html/style.css @@ -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; +} diff --git a/cookbooks/planet/recipes/default.rb b/cookbooks/planet/recipes/default.rb index 925915f2e..c9e998524 100644 --- a/cookbooks/planet/recipes/default.rb +++ b/cookbooks/planet/recipes/default.rb @@ -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