#!/usr/bin/env bash
# Usage: repro.sh <checkout> <label>
# Runs the desktop app (unpackaged dist-electron) with WSL-only settings and a primary
# backend that crashes on every start, then screenshots the Xvfb display over time.
set -u
CHECKOUT="$1"; LABEL="$2"
RUN="/tmp/issue-lead-14393-r2/runs/$LABEL-$(date -u +%Y%m%dT%H%M%SZ)"
mkdir -p "$RUN/home/.config" "$RUN/t3home/userdata"
# WSL-only mode as the reporter has it.
printf '{"wslBackendEnabled":true,"wslOnly":true}\n' > "$RUN/t3home/userdata/desktop-settings.json"
# The server cannot open its database, so every start exits before it is ready.
mkdir -p "$RUN/t3home/userdata/statev2.sqlite" "$RUN/t3home/userdata/state.sqlite"
cd "$CHECKOUT/apps/desktop"
HOME="$RUN/home" XDG_CONFIG_HOME="$RUN/home/.config" T3CODE_HOME="$RUN/t3home" \
  node_modules/electron/dist/electron --no-sandbox --disable-gpu dist-electron/main.cjs \
  > "$RUN/electron.log" 2>&1 &
EPID=$!
echo "electron pid $EPID run $RUN"
for t in 5 15 30 45 60 90; do
  sleep $(( t - ${prev:-0} )); prev=$t
  import -window root "$RUN/screen-${t}s.png" 2>>"$RUN/import.log"
done
kill "$EPID"; sleep 3; kill -9 "$EPID" 2>/dev/null
echo done "$RUN"
