Files
2025-04-13 18:10:36 +02:00

43 lines
977 B
Bash
Executable File

#!/bin/bash
# Script Version: 03
# Description: Erstellt PostgreSQL-User und -Datenbank für ein Spiel ($GAMENAME als Argument)
# ========
# Variablen setzen
# ========
GAMENAME="$1"
DBUSER="$GAMENAME"
DBPASS=$(openssl rand -hex 16)
# Check
if [ -z "$GAMENAME" ]; then
echo "Usage: $0 <GAMENAME>"
exit 1
fi
# ========
# PostgreSQL-User erstellen (falls nicht vorhanden)
# ========
sudo -u postgres psql <<EOF
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_user WHERE usename = '${DBUSER}') THEN
CREATE USER ${DBUSER} WITH PASSWORD '${DBPASS}';
END IF;
END
\$\$;
EOF
# ========
# PostgreSQL-Datenbank erstellen (außerhalb PL/pgSQL!)
# ========
DB_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='${GAMENAME}'")
if [ "$DB_EXISTS" != "1" ]; then
sudo -u postgres createdb -O "$DBUSER" "$GAMENAME"
fi
# Feedback
echo "✅ PostgreSQL-Datenbank '$GAMENAME' und User '$DBUSER' bereit."
echo "🔐 Passwort: $DBPASS"