41 lines
1.1 KiB
Bash
41 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
if [[ ! -f "${PROJECT_DIR}/.env" ]]; then
|
|
echo ".env wurde in ${PROJECT_DIR} nicht gefunden." >&2
|
|
exit 1
|
|
fi
|
|
|
|
read_env_value() {
|
|
local key="$1"
|
|
local line
|
|
|
|
line="$(grep -E "^${key}=" "${PROJECT_DIR}/.env" | tail -n 1 || true)"
|
|
if [[ -z "${line}" ]]; then
|
|
echo "Wert ${key} wurde in ${PROJECT_DIR}/.env nicht gefunden." >&2
|
|
exit 1
|
|
fi
|
|
|
|
printf '%s' "${line#*=}"
|
|
}
|
|
|
|
DB_NAME="$(read_env_value DB_NAME)"
|
|
DB_USER="$(read_env_value DB_USER)"
|
|
DB_PASSWORD="$(read_env_value DB_PASSWORD)"
|
|
MYSQL_ROOT_PASSWORD="$(read_env_value MYSQL_ROOT_PASSWORD)"
|
|
|
|
docker compose -f "${PROJECT_DIR}/docker-compose.yml" exec -T db \
|
|
mariadb -uroot "-p${MYSQL_ROOT_PASSWORD}" <<SQL
|
|
CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`;
|
|
CREATE USER IF NOT EXISTS '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
ALTER USER '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
|
|
GRANT ALL PRIVILEGES ON \`${DB_NAME}\`.* TO '${DB_USER}'@'%';
|
|
FLUSH PRIVILEGES;
|
|
SQL
|
|
|
|
echo "MariaDB-App-User '${DB_USER}' wurde fuer '${DB_NAME}' aktualisiert."
|