-# Move XML dumps into place
-year = `echo ${date} | sed "s/.*-\([0-9]\)\{4\}-.*/\1/"`
-<% {
- "changesets-${date}.osm.bz2" => "#{node[:planet][:dump][:xml_directory]}/${year}",
- "planet-${date}.osm.bz2" => "#{node[:planet][:dump][:xml_directory]}/${year}",
- "history-${date}.osm.bz2" => "#{node[:planet][:dump][:xml_history_directory]}/${year}",
- "planet-${date}.osm.pbf" => node[:planet][:dump][:pbf_directory],
- "history-${date}.osm.pbf" => node[:planet][:dump][:pbf_history_directory]
-}.each do |file,dir| %>
-md5sum "<%= file %>" > "<%= file %>.md5"
-mv "<%= file %>" "<%= file %>.md5" "<%= dir %>"
-<% end %>
+# Function to install a dump in place
+function install_dump {
+ type="$1"
+ format="$2"
+ dir="$3"
+ year="$4"
+ name="${type}-${date}.osm.${format}"
+ latest="${type}-latest.osm.${format}"
+
+ md5sum "${name}" > "${name}.md5"
+ mkdir -p "${dir}/${year}"
+ mv "${name}" "${name}.md5" "${dir}/${year}"
+ ln -sf "${year:-.}/${name}" "${dir}/${latest}"
+ rm -f "${dir}/${latest}.md5"
+ sed -e "s/${name}/${latest}/" "${dir}/${year}/${name}.md5" > "${dir}/${latest}.md5"
+}
+
+# Move dumps into place
+install_dump "changesets" "bz2" "<%= node[:planet][:dump][:xml_directory] %>" "${year}"
+install_dump "discussions" "bz2" "<%= node[:planet][:dump][:xml_directory] %>" "${year}"
+install_dump "planet" "bz2" "<%= node[:planet][:dump][:xml_directory] %>" "${year}"
+install_dump "history" "bz2" "<%= node[:planet][:dump][:xml_history_directory] %>" "${year}"
+install_dump "planet" "pbf" "<%= node[:planet][:dump][:pbf_directory] %>"
+install_dump "history" "pbf" "<%= node[:planet][:dump][:pbf_history_directory] %>"
+
+# Remove pbf dumps older than 90 days
+find "<%= node[:planet][:dump][:pbf_directory] %>" "<%= node[:planet][:dump][:pbf_history_directory] %>" -maxdepth 1 -mindepth 1 -type f -mtime +90 \( -iname 'planet-*.pbf' -o -iname 'history-*.pbf' -o -iname 'planet-*.pbf.md5' -o -iname 'history-*.pbf.md5' \) -delete