--- /dev/null
+#
+# Cookbook Name:: planet
+# Recipe:: current
+#
+# Copyright 2018, OpenStreetMap Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+package %w[
+ pyosmium
+]
+
+template "/usr/local/bin/planet-update" do
+ source "planet-update.erb"
+ owner "root"
+ group "root"
+ mode 0o755
+end
+
+template "/usr/local/bin/planet-update-file" do
+ source "planet-update-file.erb"
+ owner "root"
+ group "root"
+ mode 0o755
+end
+
+directory "/var/lib/planet" do
+ owner "planet"
+ group "planet"
+ mode 0o755
+end
+
+remote_file "/var/lib/planet/planet.pbf" do
+ action :create_if_missing
+ source "https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf"
+ owner "planet"
+ group "planet"
+ mode 0o644
+end
+
+template "/etc/cron.d/planet-update" do
+ source "planet-update.cron.erb"
+ owner "root"
+ group "root"
+ mode 0o644
+end
+
+template "/etc/logrotate.d/planet-update" do
+ source "planet-update.logrotate.erb"
+ owner "root"
+ group "root"
+ mode 0o644
+end
--- /dev/null
+#!/bin/sh
+
+# DO NOT EDIT - This file is being maintained by Chef
+
+# setup
+
+PLANETDIR="/var/lib/planet"
+PLANETPREV="${PLANETDIR}/planet-previous.pbf"
+PLANETCURR="${PLANETDIR}/planet.pbf"
+PLANETNEW="${PLANETDIR}/planet-new.pbf"
+PLANETTMP="${PLANETDIR}/planet-tmp.pbf"
+
+pyosmium-up-to-date -v -o "$PLANETNEW" "$PLANETCURR"
+retval=$?
+
+while [ $retval -eq 1 ]; do
+ mv "$PLANETNEW" "$PLANETTMP"
+ pyosmium-up-to-date -v -o "$PLANETNEW" "$PLANETTMP"
+ retval=$?
+ rm "$PLANETTMP"
+done
+
+if [ $retval -ne 0 ]; then
+ exit $retval
+fi
+
+# cleanup
+
+mv "$PLANETCURR" "$PLANETPREV"
+mv "$PLANETNEW" "$PLANETCURR"
--- /dev/null
+#!/bin/sh
+
+# DO NOT EDIT - This file is being maintained by Chef
+
+exec > /var/log/planet-update.log 2>&1
+
+echo "Updating planet file..."
+
+runuser -u planet -- /usr/local/bin/planet-update-file
+
+echo "Running jobs..."
+<% node[:planet][:current][:jobs].each do |job| -%>
+
+echo "Running '<%= job[:command] %>' as user '<%= job[:user] %>'..."
+
+runuser -u "<%= job[:user] %>" -- "<%= job[:command] %>"
+<% end -%>
+
+echo "Done."