#!/bin/sh
+# DO NOT EDIT - This file is being maintained by Chef
+
+# abort on error
+
set -e
-cd "<%= @directory %>/planet"
+# setup
+
+PLANETDIR="<%= @directory %>/planet"
+LOGDIR="${PLANETDIR}/log"
+PLANETPREV="${PLANETDIR}/planet-previous.pbf"
+PLANETCURR="${PLANETDIR}/planet.pbf"
+PLANETNEW="${PLANETDIR}/planet-new.pbf"
+STATEDIR="${PLANETDIR}/replication"
+OSCFILE="${PLANETDIR}/$(date +%Y%m%d-%H%M).osc"
+OSCFILEPREV="${PLANETDIR}/previous.osc"
+
+OSMIUM=<%= @directory %>/osmium-tool/build/src/osmium
-OSCFILE="$(date +%Y%m%d-%H%M).osc"
+# start logging
+
+exec > "${LOGDIR}/$(date +%Y%m%d-%H%M).log" 2>&1
# if there are old .osc files, they have to be taken into account
-OLDFILE=2*-*.osc
+OLDFILE="$(find "${PLANETDIR}" -name "2*-*.osc" -print)"
if [ -z "$OLDFILE" ]
then
- osmosis --rri --simc --write-xml-change "$OSCFILE"
+ osmosis --rri "$STATEDIR" --simc --write-xml-change "$OSCFILE"
else
- osmosis --rxc "$OLDFILE" --rri --mc --simc --write-xml-change "$OSCFILE" && rm "$OLDFILE"
+ osmosis --rxc "$OLDFILE" --rri "$STATEDIR" --mc --simc --write-xml-change "$OSCFILE" && rm "$OLDFILE"
fi
# osc file is ready, create new planet file
-osmosis --read-xml-change "$OSCFILE" --read-bin planet.pbf --buffer bufferCapacity=12000 --apply-change --buffer bufferCapacity=12000 --write-pbf planet-new.pbf
+#osmosis --read-xml-change "$OSCFILE" --read-bin "$PLANETCURR" --buffer bufferCapacity=12000 --apply-change --buffer bufferCapacity=12000 --write-pbf file="$PLANETNEW"
+$OSMIUM apply-changes --verbose --fsync --output=$PLANETNEW $PLANETCURR $OSCFILE
# cleanup
-mv planet-new.pbf planet.pbf
-rm "$OSCFILE"
+mv "$PLANETCURR" "$PLANETPREV"
+mv "$PLANETNEW" "$PLANETCURR"
+mv "$OSCFILE" "$OSCFILEPREV"
+
+# expire old logs
+
+find "${LOGDIR}" -mtime +28 -delete