#!/bin/sh

MISSING=""
for VAR in PG_HOST PG_PORT PG_DATABASE PG_USER PG_PASSWORD; do
  eval "VAL=\$$VAR"
  if [ -z "$VAL" ]; then
    MISSING="$MISSING $VAR"
  fi
done

if [ -n "$MISSING" ]; then
  echo "Error: Missing required environment variables:$MISSING" >&2
  exit 1
fi

SSL_MODE="disable"
if [ "$PG_SSL" = "true" ]; then
  SSL_MODE="require"
fi

ENCODED_PASSWORD=$(node -e "process.stdout.write(encodeURIComponent(process.env.PG_PASSWORD))")

export POSTGRES_URL="postgresql://${PG_USER}:${ENCODED_PASSWORD}@${PG_HOST}:${PG_PORT}/${PG_DATABASE}?sslmode=${SSL_MODE}"

exec "$@"

