50 lines
966 B
Bash
Executable File
50 lines
966 B
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
name=wm-mj
|
|
|
|
_psql() {
|
|
env \
|
|
PGPASSWORD=osm \
|
|
PGHOST=127.0.0.1 \
|
|
PGUSER=osm \
|
|
PGDATABASE=osm \
|
|
psql "$@"
|
|
}
|
|
|
|
_wait_for_postgres() {
|
|
>&2 echo -n "Waiting for postgres"
|
|
for _ in $(seq 240); do
|
|
if _psql -qc '\q' 2>/dev/null; then
|
|
>&2 echo " up"
|
|
exit 0
|
|
fi
|
|
>&2 echo -n .
|
|
sleep 1
|
|
done
|
|
>&2 echo " down"
|
|
exit 1
|
|
}
|
|
|
|
case ${1:-} in
|
|
start)
|
|
_psql -qc '\q' 2>/dev/null && exit 0
|
|
docker run -d --rm \
|
|
--net=host \
|
|
-e POSTGRES_DBNAME=osm \
|
|
-e POSTGRES_USER=osm \
|
|
-e POSTGRES_PASSWORD=osm \
|
|
--name "$name" \
|
|
postgis/postgis:13-3.1-alpine \
|
|
-c log_statement=all \
|
|
-c listen_addresses=127.0.0.1
|
|
_wait_for_postgres
|
|
;;
|
|
stop)
|
|
docker stop "$name"
|
|
;;
|
|
*)
|
|
_psql "$@"
|
|
;;
|
|
esac
|