dcaae9f0ba
- Uppdatera .env API_BASE_URL till http://192.168.8.123:4000. - Lägg till gitignorerad .env.telefontest med REACT_NATIVE_PACKAGER_HOSTNAME och API_BASE_URL. - Lägg till scripts/expo-lan.sh som dödar gammal expo-tmux, sourcar .env.telefontest och startar Expo med rätt variabler. - Uppdatera first-deploy.sh staging-sammanfattning: skriv ut API_BASE_URL och påminn om ./scripts/expo-lan.sh. - Lägg till docs/RUNBOOK-STAGING-EXPO.md.
65 lines
2.4 KiB
Bash
Executable File
65 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Startar om Expo-tmux-sessionen för LAN-telefontest.
|
|
# Sourcar .env.telefontest så att REACT_NATIVE_PACKAGER_HOSTNAME och
|
|
# API_BASE_URL sätts innan app.config.ts läser dem.
|
|
#
|
|
# Användning (från repo-root):
|
|
# ./scripts/expo-lan.sh
|
|
#
|
|
# Krav: tmux, pnpm, apps/mobile/package.json
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
ENV_FILE="${REPO_ROOT}/.env.telefontest"
|
|
LOG_FILE="${REPO_ROOT}/logs/expo.log"
|
|
SESSION_NAME="expo"
|
|
|
|
if [[ ! -f "${ENV_FILE}" ]]; then
|
|
echo "❌ ${ENV_FILE} saknas. Skapa den med minst:"
|
|
echo " REACT_NATIVE_PACKAGER_HOSTNAME=<datorns LAN-IP>"
|
|
echo " API_BASE_URL=http://<datorns LAN-IP>:4000"
|
|
exit 1
|
|
fi
|
|
|
|
# Sourca env-filen i nuvarande shell så variablerna blir tillgängliga.
|
|
set -a
|
|
# shellcheck source=/dev/null
|
|
. "${ENV_FILE}"
|
|
set +a
|
|
|
|
# Kontrollera att obligatoriska variabler finns.
|
|
if [[ -z "${REACT_NATIVE_PACKAGER_HOSTNAME:-}" || -z "${API_BASE_URL:-}" ]]; then
|
|
echo "❌ .env.telefontest måste innehålla REACT_NATIVE_PACKAGER_HOSTNAME och API_BASE_URL"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$(dirname "${LOG_FILE}")"
|
|
|
|
echo "🔄 Dödar gammal tmux-session '${SESSION_NAME}' (om den finns)..."
|
|
tmux kill-session -t "${SESSION_NAME}" 2>/dev/null || true
|
|
|
|
echo "🚀 Startar Expo på ${REACT_NATIVE_PACKAGER_HOSTNAME}:8081 (API: ${API_BASE_URL})..."
|
|
# Starta utan pipe/tee — Expo skriver QR-kod och exp://-raden till terminalen
|
|
# och kan hänga om stdout är omdirigerad. Loggning sker istället via tmux capture.
|
|
tmux new-session -d -s "${SESSION_NAME}" \
|
|
"cd '${REPO_ROOT}/apps/mobile' && REACT_NATIVE_PACKAGER_HOSTNAME='${REACT_NATIVE_PACKAGER_HOSTNAME}' API_BASE_URL='${API_BASE_URL}' pnpm start"
|
|
|
|
echo "⏳ Väntar på att Expo ska publicera exp://-raden..."
|
|
for i in {1..45}; do
|
|
sleep 1
|
|
if tmux capture-pane -t "${SESSION_NAME}" -p 2>/dev/null | grep -m1 "exp://${REACT_NATIVE_PACKAGER_HOSTNAME}:8081" >/dev/null 2>&1; then
|
|
# Spara en loggsnapshot
|
|
tmux capture-pane -t "${SESSION_NAME}" -p > "${LOG_FILE}"
|
|
echo "✅ Expo kör på exp://${REACT_NATIVE_PACKAGER_HOSTNAME}:8081"
|
|
echo " Loggsnapshot: ${LOG_FILE}"
|
|
echo " Kör 'tmux attach -t ${SESSION_NAME}' för live-loggar."
|
|
exit 0
|
|
fi
|
|
done
|
|
|
|
echo "⚠️ Expo verkar ha startat men exp://${REACT_NATIVE_PACKAGER_HOSTNAME}:8081 syns inte ännu."
|
|
echo " Kör 'tmux attach -t ${SESSION_NAME}' för att se vad som händer."
|
|
exit 0
|