#!/bin/bash
set -e

echo "🚀 init-mongo.sh started"

KEYFILE=/data/configdb/mongo-keyfile

# keyfile yoksa oluştur ve izinleri ayarla
if [ ! -f "$KEYFILE" ]; then
  echo "🔑 Creating keyfile..."
  mkdir -p /data/configdb
  openssl rand -base64 756 > "$KEYFILE"
  chmod 600 "$KEYFILE"
  # chown container içindeki mongodb kullanıcısına (genelde uid 999)
  chown 999:999 "$KEYFILE" 2>/dev/null || true
else
  echo "🔑 Keyfile already exists"
fi

# MongoDB açılana kadar bekle
echo "⏳ Waiting for mongod to be ready..."
for i in {1..60}; do
  if mongosh --quiet --eval 'db.adminCommand("ping")' >/dev/null 2>&1; then
    echo "✅ mongod ready"
    break
  fi
  echo "Waiting... ($i/60)"
  sleep 2 
done

# Eğer replSet yoksa initiate et
echo "⚡ Ensuring replSet..."
mongosh --quiet --eval 'try { rs.status(); print("RS_OK"); } catch(e) { print("RS_MISSING"); }' | grep -q RS_MISSING && \
mongosh --quiet <<EOF || true
rs.initiate({
  _id: "rs0",
  members: [{ _id: 0, host: "mongodb:27017" }]
});
EOF

echo "🎉 init script finished"
