34 lines
947 B
Bash
Executable File
34 lines
947 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
set -o pipefail 2>/dev/null || true
|
|
|
|
# Create application roles/users (idempotent).
|
|
# Runs early to ensure roles exist before databases are created.
|
|
|
|
: "${GITEA_DB_USER:=gitea}"
|
|
: "${GITEA_DB_PASSWORD:=giteapass}"
|
|
: "${ODOO_DB_USER:=odoo}"
|
|
: "${ODOO_DB_PASSWORD:=odoopass}"
|
|
|
|
echo "[init] create-roles: gitea_user=${GITEA_DB_USER}, odoo_user=${ODOO_DB_USER}"
|
|
|
|
role_exists() {
|
|
psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='$1'" | grep -q 1 || return 1
|
|
}
|
|
|
|
create_role() {
|
|
local role="$1"; shift
|
|
local pass="$1"; shift
|
|
if role_exists "$role"; then
|
|
echo "[init] role '$role' already exists, skipping"
|
|
else
|
|
echo "[init] creating role '$role'"
|
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" -c "CREATE USER \"${role}\" WITH ENCRYPTED PASSWORD '${pass}';"
|
|
fi
|
|
}
|
|
|
|
create_role "${GITEA_DB_USER}" "${GITEA_DB_PASSWORD}"
|
|
create_role "${ODOO_DB_USER}" "${ODOO_DB_PASSWORD}"
|
|
|
|
echo "[init] create-roles finished"
|