From 508aa1976088f9de51aee796c02441e2517134c9 Mon Sep 17 00:00:00 2001 From: Matija Nalis Date: Sat, 21 Nov 2020 02:20:17 +0100 Subject: [PATCH] generate planet / history RSS files --- .../planet/templates/default/planetdump.erb | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/cookbooks/planet/templates/default/planetdump.erb b/cookbooks/planet/templates/default/planetdump.erb index 2c97add10..88f4e6a3b 100644 --- a/cookbooks/planet/templates/default/planetdump.erb +++ b/cookbooks/planet/templates/default/planetdump.erb @@ -101,6 +101,56 @@ function mk_torrent { -o ${name}.torrent } +# Function to create RSS/Atom feed for .torrent files +function mk_rss { + type="$1" # fixme "history" / "planet" + format="$2" # fixme "pbf" + web_dir="$3" # fixme "pbf/full-history" or "pbf" + disk_dir="$4" # fixme "/store/planet/pbf/full-history" + old_pwd="$PWD" + rss_name="${type}-${format}-rss.xml" + rss_path="${old_pwd}/${rss_name}" + rss_baseurl="https://planet.openstreetmap.org" + rss_dirurl="${rss_baseurl}/${web_dir}" + + cd "${disk_dir}" + + # RSS header + printf '%s\n' \ + '' \ + '' \ + '' > "${rss_path}" + cat >> "${rss_path}" <<__EOF + OpenStreetMap planet torrent RSS + ${rss_baseurl} + + RSS feed for ${type}.osm.${format}.torrent + en-us + `date -R` +__EOF + + # add RSS item for each torrent + for tf in `ls -1t *.torrent | grep -v latest | head -n 5` + do + cat >> "${rss_path}" <<__EOF + + $tf + ${rss_dirurl}/$tf + `date -R -r $tf` + OpenStreetMap + ${rss_dirurl}/$tf + + OSM Torrent $tf (torrent size: `find -maxdepth 1 -name $tf -printf "%s"`) + +__EOF + done + + # RSS footer + printf '\n\n' >> "${rss_path}" + cd "$old_pwd" + mv "${rss_path}" "${disk_dir}" +} + # Function to install a dump in place function install_dump { type="$1" @@ -133,3 +183,7 @@ 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' -o -iname 'planet-*.pbf.torrent' -o -iname 'history-*.pbf.torrent' \) -delete + +# Create RSS feed of available *.torrent files to enable automatic seeders +mk_rss "planet" "pbf" "pbf" "<%= node[:planet][:dump][:pbf_directory] %>" +mk_rss "history" "pbf" "pbf/full-history" "<%= node[:planet][:dump][:pbf_history_directory] %>" -- 2.39.5