35 lines
845 B
Bash
Executable File
35 lines
845 B
Bash
Executable File
#!/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"
|