#!/bin/ash set -eu SEED_SENTINEL_PATH=/var/lib/pleroma/.e2e_seeded CONFIG_OVERRIDE_PATH=/var/lib/pleroma/config.exs echo '-- Waiting for database...' while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma} -t 1; do sleep 1s done echo '-- Writing E2E config overrides...' cat > $CONFIG_OVERRIDE_PATH </dev/null; then kill -TERM $PLEROMA_PID wait $PLEROMA_PID || true fi } trap cleanup INT TERM echo '-- Waiting for API...' api_ok=false for _i in $(seq 1 120); do if wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null 2>&1; then api_ok=true break fi sleep 1s done if [ $api_ok != true ]; then echo 'Timed out waiting for Pleroma API to become available' exit 1 fi if [ ! -f $SEED_SENTINEL_PATH ]; then if [ -n ${E2E_ADMIN_USERNAME:-} ] && [ -n ${E2E_ADMIN_PASSWORD:-} ] && [ -n ${E2E_ADMIN_EMAIL:-} ]; then echo '-- Seeding admin user' $E2E_ADMIN_USERNAME '...' if ! /opt/pleroma/bin/pleroma_ctl user new $E2E_ADMIN_USERNAME $E2E_ADMIN_EMAIL --admin --password $E2E_ADMIN_PASSWORD -y; then echo '-- User already exists or creation failed, ensuring admin + confirmed...' /opt/pleroma/bin/pleroma_ctl user set $E2E_ADMIN_USERNAME --admin --confirmed fi else echo '-- Skipping admin seeding (missing E2E_ADMIN_* env)' fi touch $SEED_SENTINEL_PATH fi wait $PLEROMA_PID