wm/gdr2pgsql

35 lines
845 B
Plaintext
Raw Normal View History

#!/bin/bash
set -euo pipefail
dbzip=$(realpath -s "$1")
tbl=$2
filter=$3
outfile=$4
if [[ "$dbzip" =~ " " ]]; then
echo "ERROR: $dbzip contains spaces"
exit 1
fi
set -x
gdbname=$(unzip -Z1 "$dbzip" | awk -Fgdb '/.gdb/{print $1"gdb";exit}')
now=$(TZ=UTC date +"%FT%TZ")
here=$(whoami)@$(hostname -f)
mkdir -p ".tmp"
ogr2ogr -skipfailures -f PGDump /dev/stdout -t_srs epsg:3857 \
"/vsizip/$dbzip/$gdbname" -nln "src_$tbl" hidro_l | \
awk "!/^INSERT/{print}; /^INSERT/&&/${filter}/{print;next}" | \
bash ./db | \
grep -v '^INSERT 0 1'
bash db -f aggregate-rivers.sql -v "srctable=src_$tbl" -v "dsttable=$tbl"
(
echo "-- Generated at $now on $here";
echo "-- Rivers: $filter";
docker exec wm-mj pg_dump --clean -Uosm osm -t "$tbl" | tr -d '\r'
) > ".tmp/$outfile"
mv ".tmp/$outfile" "$outfile"