#!/usr/bin/env bash # Seed (or reset) the default admin user, default shop, owner role, Till 1. set -euo pipefail ADMIN_EMAIL="${ADMIN_EMAIL:-admin@local.test}" ADMIN_PASSWORD="${ADMIN_PASSWORD:-ChangeMe123!}" ADMIN_NAME="${ADMIN_NAME:-Local Admin}" echo ">> seeding admin user: ${ADMIN_EMAIL}" # Use psql -v to safely substitute values inside the DO block via :'name' -- # but :'name' only works at top level. So we generate plain SQL with the # values inlined as quoted literals (escaping single quotes). escape() { printf "%s" "$1" | sed "s/'/''/g"; } EM=$(escape "$ADMIN_EMAIL") PW=$(escape "$ADMIN_PASSWORD") NM=$(escape "$ADMIN_NAME") psql -v ON_ERROR_STOP=1 \ --username "$POSTGRES_USER" \ --dbname "$POSTGRES_DB" <> admin user ensured: ${ADMIN_EMAIL}"