#!/bin/bash GEOFABRICK_SERVER=http://download.geofabrik.de/asia/taiwan-updates PBF_FILE=$1 # get latest sequence number echo Fetching latest sequence number LATEST_SEQ=$(curl --silent http://download.geofabrik.de/asia/taiwan-updates/state.txt |\ tail -1 | cut -d'=' -f2) # get current sequence number SEQ=$(osmium fileinfo $PBF_FILE |\ grep osmosis_replication_sequence_number |\ cut -d'=' -f2) # while server has osc file with given sequence number, # get it and do file update while (( SEQ++ )) [ $SEQ -le $LATEST_SEQ ] do mkdir -p changes CHANGE_URL=$GEOFABRICK_SERVER/000/$SEQ_PATH.osc.gz echo $CHANGE_URL curl -o changes/$SEQ.osc.gz $CHANGE_URL && \ osmium apply-changes $PBF_FILE changes/$SEQ.osc.gz \ --output-header=osmosis_replication_sequence_number=$SEQ \ --overwrite \ --output $SEQ.osm.pbf mv $PBF_FILE $((SEQ-1)).osm.pbf mv $SEQ.osm.pbf $PBF_FILE done echo echo File sequence number is $((SEQ-1)), already the latest one on Geofrbrik