aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/osm/osm.pbf.update
blob: 694ae4db8cac5d01880a41b0f76bab2d976233c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    PBF_FILE=$1
    GEOFABRICK_SERVER=http://download.geofabrik.de/asia/taiwan-updates

    # get next sequence number and store it into NEW_SEQ
    osmium fileinfo $PBF_FILE | \
    grep osmosis_replication_sequence_number | \
    cut -d'=' -f2 | \
    sed 's/$/+1/' | bc | \
    read NEW_SEQ

    # while server has osc file with given sequence number,
    # get it and do file update
    while
        SEQ_PATH=$(echo $NEW_SEQ | sed -r 's/(.{1})(.{3})/00\1\/\2/')
        STATE_URL=$GEOFABRICK_SERVER/000/$SEQ_PATH.state.txt
        echo $STATE_URL
        [ $(curl.code $STATE_URL) != "404" ]
    do
        mkdir -p changes
        CHANGE_URL=$GEOFABRICK_SERVER/000/$SEQ_PATH.osc.gz
        echo $CHANGE_URL
        curl -o changes/$NEW_SEQ.osc.gz $CHANGE_URL && \
        osmium apply-changes $PBF_FILE changes/$NEW_SEQ.osc.gz \
            --output-header=osmosis_replication_sequence_number=$NEW_SEQ \
            --overwrite \
            --output $NEW_SEQ.osm.pbf

        PBF_FILE=$NEW_SEQ.osm.pbf
        ((NEW_SEQ++))
    done