#!/bin/bash
# Start Phoenix + Livebook together. Livebook attaches to the Phoenix node
# and gets full access to Repo, Scorer, Weather, etc.
#
# Usage: bin/notebook
# Then open http://localhost:8081

set -e

COOKIE="microwaveprop_nb"
NODE="prop@$(hostname -s)"
PORT="${LIVEBOOK_PORT:-8081}"
NOTEBOOK="notebooks/algorithm_analysis.livemd"

echo "Starting Phoenix on :4000 and Livebook on :${PORT}..."
echo "Livebook will be at http://localhost:${PORT}"
echo ""

# Start Phoenix in background with a node name
elixir --sname prop --cookie "$COOKIE" -S mix phx.server &
PHOENIX_PID=$!

# Wait for the node to come up
sleep 3

# Start Livebook attached to the Phoenix node
LIVEBOOK_HOME="$(pwd)/notebooks" \
  livebook server \
  --port "$PORT" \
  --default-runtime "attached:${NODE}:${COOKIE}" \
  --open "$NOTEBOOK" &
LIVEBOOK_PID=$!

# Trap ctrl-c to kill both
trap "kill $PHOENIX_PID $LIVEBOOK_PID 2>/dev/null; exit" INT TERM

echo "Phoenix PID: $PHOENIX_PID, Livebook PID: $LIVEBOOK_PID"
echo "Press Ctrl-C to stop both."

wait
