#!/usr/bin/env bash
set -euo pipefail

url="${DSH_WEB_URL:-http://127.0.0.1:3080/}"
profile="${DSH_FIREFOX_PROFILE:-$HOME/.local/share/dsh-app-firefox}"
log="$profile/dsh-web.log"
mkdir -p "$profile"

kiosk=0
[[ "${1:-}" == "--kiosk" ]] && kiosk=1

if ! curl --fail --silent --output /dev/null "$url" 2>/dev/null; then
  if systemctl --user cat dsh-web.service >/dev/null 2>&1; then
    systemctl --user start dsh-web.service
  else
    nohup dsh web --no-open --port 3080 >"$log" 2>&1 &
  fi

  for _ in $(seq 1 60); do
    curl --fail --silent --output /dev/null "$url" 2>/dev/null && break
    sleep 1
  done
fi

export MOZ_ENABLE_WAYLAND=1
unset GDK_BACKEND
arguments=(--no-remote --new-instance --profile "$profile" --name dsh-app)
if [[ "$kiosk" == 1 ]]; then
  exec firefox "${arguments[@]}" --kiosk "$url"
fi
exec firefox "${arguments[@]}" --new-window "$url"
