#!/bin/bash

# Check user
if [ "`whoami`" != "osm" ]
then
    echo "Error: this script must be run by osm user"
    exit 1
fi

function update-sample()
{
    local url=$1
    local sample=$(basename $1)

    TMPFILE=$(mktemp -p /tmp osm-update.${sample}.XXXXXXXXXX.osm.gz)
    EXPIREFILE=$(mktemp -p /tmp osm-update.${sample}.expire.XXXXXXXXXX.list)

    export WORKDIR_OSM=$HOME/.osmosis/${sample}

    # Create osmosis working directory if not exists and initialize replication
    if [ ! -d ${WORKDIR_OSM} ]
    then
        mkdir -p ${WORKDIR_OSM}
        cd ${WORKDIR_OSM}
        osmosis --read-replication-interval-init workingDirectory=${WORKDIR_OSM}
        cp /home/osm/${sample}/state.txt ${WORKDIR_OSM}/state.txt
        sed -i -e "/^baseUrl/ s^=.*$^=http://download.geofabrik.de/${url}-updates^" configuration.txt
    fi

    # Get one update and write it to tmp file
    osmosis --read-replication-interval workingDirectory=${WORKDIR_OSM} \
            --write-xml-change ${TMPFILE}

    # Apply update for our gis database
    osm2pgsql --append --slim --hstore \
            --style /var/lib/openstreetmap-carto/openstreetmap-carto.style \
            --tag-transform-script /var/lib/openstreetmap-carto/openstreetmap-carto.lua \
            -d gis -C 10000 --number-processes 2 \
            -e 8-20 -o ${EXPIREFILE} \
            ${TMPFILE}

    # Update nominatim too
    #pushd /usr/share/nominatim
    #/usr/share/nominatim/utils/update.php --import-diff ${TMPFILE}
    #popd

    # Expire modified tiles:
    #  * rebuild modified tiles between zoom 8 and zoom 14
    #  * just delete modified tiles with zoom 15 and over
    render_expired --min-zoom=8 --delete-from=15 < ${EXPIREFILE}

    rm -f ${TMPFILE}
    rm -f ${EXPIREFILE}
}

update-sample europe/france/languedoc-roussillon
update-sample europe/france/provence-alpes-cote-d-azur

# Refresh nominatim indexes
#pushd /usr/share/nominatim
#/usr/share/nominatim/utils/update.php --index
#popd
