#!/usr/bin/env bash
# talon-login — browser login flow for cogmeta.ai
set -e

TALON_BIN=$(which talon 2>/dev/null || echo "$HOME/.local/bin/talon")

rm -f /tmp/talon_login_url.txt /tmp/talon_login_done.txt

"$TALON_BIN" auth login &
LOGIN_PID=$!

for i in 1 2 3 4 5 6; do
  sleep 0.5
  [ -f /tmp/talon_login_url.txt ] && break
done

URL=$(cat /tmp/talon_login_url.txt 2>/dev/null)
if [ -n "$URL" ]; then
  echo ""
  echo "Opening browser for login..."
  echo ""
  echo "  $URL"
  echo ""
  echo "If the browser did not open, copy the URL above into your browser."
  echo "Waiting for you to log in..."
else
  echo "Error: login server did not start."
  kill $LOGIN_PID 2>/dev/null
  exit 1
fi

for i in $(seq 1 300); do
  sleep 1
  [ -f /tmp/talon_login_done.txt ] && break
done

echo ""
cat /tmp/talon_login_done.txt 2>/dev/null || echo "Login timed out."
wait $LOGIN_PID 2>/dev/null
