#!/bin/bash
set -euo pipefail
LIVEKIT_DIR="/home/balariwe/livekit"
BIN="$LIVEKIT_DIR/livekit-server"
CONFIG="$LIVEKIT_DIR/livekit.yaml"
LOG="$LIVEKIT_DIR/livekit.log"
PIDFILE="$LIVEKIT_DIR/livekit.pid"

mkdir -p "$LIVEKIT_DIR"

if [ -f "$PIDFILE" ]; then
  pid="$(cat "$PIDFILE" 2>/dev/null || true)"
  if [ -n "$pid" ] && ps -p "$pid" >/dev/null 2>&1; then
    exit 0
  fi
fi

# Avoid duplicate LiveKit processes owned by this user for this config.
for pid in $(ps -fu "$USER" | awk '/livekit-server --config \/home\/balariwe\/livekit\/livekit.yaml/ && !/awk/ {print $2}'); do
  if ps -p "$pid" >/dev/null 2>&1; then
    echo "$pid" > "$PIDFILE"
    exit 0
  fi
done

cd "$LIVEKIT_DIR"
setsid "$BIN" --config "$CONFIG" >> "$LOG" 2>&1 < /dev/null &
echo $! > "$PIDFILE"