Initial Watermaps import
This commit is contained in:
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
OUT_DIR="${WATERMAPS_GEOFABRIK_DIR:-${SEA_COMPASS_GEOFABRIK_DIR:-data/geofabrik}}"
|
||||
GERMANY_BASE_URL="${WATERMAPS_GEOFABRIK_GERMANY_BASE_URL:-${SEA_COMPASS_GEOFABRIK_GERMANY_BASE_URL:-https://download.geofabrik.de/europe/germany}}"
|
||||
EUROPE_BASE_URL="${WATERMAPS_GEOFABRIK_EUROPE_BASE_URL:-${SEA_COMPASS_GEOFABRIK_EUROPE_BASE_URL:-https://download.geofabrik.de/europe}}"
|
||||
|
||||
DEFAULT_REGIONS=(
|
||||
germany
|
||||
netherlands
|
||||
)
|
||||
|
||||
regions=("$@")
|
||||
if [[ "${#regions[@]}" -eq 0 ]]; then
|
||||
regions=("${DEFAULT_REGIONS[@]}")
|
||||
fi
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
|
||||
for region in "${regions[@]}"; do
|
||||
file_name="${region}-latest.osm.pbf"
|
||||
case "$region" in
|
||||
germany|netherlands)
|
||||
url="${EUROPE_BASE_URL}/${file_name}"
|
||||
;;
|
||||
*)
|
||||
url="${GERMANY_BASE_URL}/${file_name}"
|
||||
;;
|
||||
esac
|
||||
target="${OUT_DIR}/${file_name}"
|
||||
checksum_target="${target}.md5"
|
||||
|
||||
echo "Downloading $url.md5"
|
||||
curl --fail --location --retry 5 --retry-delay 5 --output "$checksum_target" "${url}.md5"
|
||||
|
||||
expected_checksum="$(awk 'NR == 1 { print $1 }' "$checksum_target")"
|
||||
if [[ -f "$target" ]] && [[ "$(md5sum "$target" | awk '{ print $1 }')" == "$expected_checksum" ]]; then
|
||||
echo "$(basename "$target"): already current"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Downloading $url"
|
||||
curl --fail --location --continue-at - --retry 5 --retry-delay 5 --output "$target" "$url"
|
||||
|
||||
actual_checksum="$(md5sum "$target" | awk '{ print $1 }')"
|
||||
if [[ -z "$expected_checksum" || "$actual_checksum" != "$expected_checksum" ]]; then
|
||||
echo "Checksum verification failed for $target" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "$(basename "$target"): OK"
|
||||
done
|
||||
Reference in New Issue
Block a user