#!/bin/sh
TAG=${TAG:="studio-server"}

STUDIO_IP=${STUDIO_IP:="127.0.0.1"}
STUDIO_PORT=${STUDIO_PORT:="9999"}
STUDIO_DEBUG=${STUDIO_DEBUG:=""}
STUDIO_MODE=${STUDIO_MODE:="daemon"}
STUDIO_DATA=${STUDIO_DATA:="${0%/*}/data"}
PIDFILE="$STUDIO_DATA/.$TAG.pid"
PID=${PID:=""}
if [ -s "$PIDFILE" ]; then PID=$(cat "$PIDFILE"); fi

[ ! -z "$PID" ] && kill "$PID"

LOG_DIR="$STUDIO_DATA/log"
mkdir -p "$LOG_DIR"

STUDIO_TAG=$TAG
PHP="php -S $STUDIO_IP:$STUDIO_PORT \
  -q \
  -d STUDIO_DATA=$STUDIO_DATA \
  -d memory_limit=16M \
  -d display_errors=Off \
  -d error_reporting=E_ALL \
  -d date.timezone=UTC \
  -d cli_server.color=1 \
  "

PHP_CLI_SERVER_WORKERS=4

if [ "$STUDIO_DEBUG" != "" ]; then
  XDEBUG_SESSION=1
  PHP_CLI_SERVER_WORKERS=1
  PHP="$PHP \
      -d xdebug.mode=profile \
      -d xdebug.start_with_request=yes \
      -d xdebug.use_compression=false \
      "
fi

if [ "$STUDIO_MODE" = "daemon" ]; then
    $PHP "${0%/*}/app.php" -s $TAG >> "$LOG_DIR/app.log" 2>&1 &
    echo $! > "$PIDFILE"
else
    exec $PHP "${0%/*}/app.php" -s $TAG
fi
