46 lines
1.9 KiB
Bash
Executable File
46 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# 해커톤 투표 URL 출력 (호스트에서 실행)
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
# docker-compose.yml에서 ADMIN_TOKEN 추출 (환경변수 override 가능)
|
|
TOKEN="${ADMIN_TOKEN:-$(grep -E "^[[:space:]]*ADMIN_TOKEN:" docker-compose.yml | head -1 | sed -E 's/^[[:space:]]*ADMIN_TOKEN:[[:space:]]*//' | tr -d '"' | xargs)}"
|
|
PORT="${PORT:-8501}"
|
|
|
|
if [[ -z "$TOKEN" ]]; then
|
|
echo "❌ ADMIN_TOKEN 못 찾음. docker-compose.yml 확인."
|
|
exit 1
|
|
fi
|
|
|
|
# LAN IP 자동 감지 (macOS/Linux)
|
|
LAN_IP=$(ipconfig getifaddr en0 2>/dev/null || ip -4 addr show 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127\.' | head -1 || echo "")
|
|
|
|
echo "============================================"
|
|
echo " 해커톤 투표 URL (token: ${TOKEN})"
|
|
echo "============================================"
|
|
echo
|
|
echo "🖥 큰 화면 (발표자):"
|
|
echo " http://localhost:${PORT}/"
|
|
[[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/ (LAN)"
|
|
echo
|
|
echo "📱 모바일 투표 (QR target):"
|
|
echo " http://localhost:${PORT}/?mode=vote"
|
|
[[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=vote"
|
|
echo
|
|
echo "🔐 진행자 어드민:"
|
|
echo " http://localhost:${PORT}/?mode=admin&token=${TOKEN}"
|
|
[[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=admin&token=${TOKEN}"
|
|
echo
|
|
echo "🎉 시상식 (큰 화면):"
|
|
echo " http://localhost:${PORT}/?mode=ceremony&token=${TOKEN}"
|
|
[[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=ceremony&token=${TOKEN}"
|
|
echo
|
|
echo "📦 JSON 원본 조회/다운로드:"
|
|
echo " http://localhost:${PORT}/?mode=raw&token=${TOKEN}"
|
|
[[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=raw&token=${TOKEN}"
|
|
echo
|
|
echo "============================================"
|
|
echo " 팁: 'open' 으로 바로 브라우저 열기 (macOS)"
|
|
echo " open \"http://localhost:${PORT}/?mode=admin&token=${TOKEN}\""
|
|
echo "============================================"
|