Files
jhonny-editor/admin/inativos/deploy-codeclass.command
T
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

88 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
set -e
# Tigre (codeclass) - Deploy do servidor web novo em Swift
# Sobe um nivel: o script vive em admin/, o projeto e a pasta pai.
#
# Uso:
# admin/deploy-codeclass.command # porta 5050 (padrão)
# admin/deploy-codeclass.command 8080 # porta customizada
#
# O que faz:
# 1) localiza a toolchain Swift (Xcode) e compila o codeclass (swift build)
# 2) derruba qualquer instancia antiga na porta de destino
# 3) sobe o servidor novo em background (TigreApp serve) com as classes
# novas (TranscriptionService + AppleVisionAnalyzer)
# 4) abre o navegador quando o servidor responder
#
# Diferente de deploy.command (legado Python/Flask em code/app.py), este
# script sobe o servidor do codeclass/ (100% Swift). Na porta 5050 eles se
# conflitam: rode APENAS UM deles por vez.
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
PORT="${1:-5050}"
CLASSDIR="$PROJECT_DIR/codeclass"
echo "============================================================"
echo " Tigre (codeclass) :: Deploy do servidor web novo (Swift)"
echo " Pasta: $PROJECT_DIR"
echo " Porta: $PORT"
echo "============================================================"
echo
# 1) Toolchain Swift (Xcode 26 / swift 6.3). Respeita PATH se ja configurado.
SWIFT="$(command -v swift || true)"
if [ -z "$SWIFT" ] && [ -x "/Volumes/Merongo/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift" ]; then
export PATH="/Volumes/Merongo/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
SWIFT="swift"
fi
if [ -z "$SWIFT" ]; then
echo "ERRO: swift nao encontrado no PATH nem no Xcode padrao."
echo " Instale Xcode 26+ ou exporte o PATH da toolchain."
exit 1
fi
# 2) Compilar o codeclass
echo "[1/3] Compilando o codeclass (swift build)..."
cd "$CLASSDIR"
"$SWIFT" build 2>&1 | tail -5
echo " Build OK."
echo
# 3) Derrubar instancias antigas na porta de destino
echo "[2/3] Parando instancia anterior na porta $PORT..."
lsof -ti:"$PORT" | xargs kill -9 2>/dev/null || true
sleep 1
true
# 4) Subir o servidor novo em background (nao trava o terminal)
echo "[3/3] Levantando o servidor novo (TigreApp serve)..."
echo " http://localhost:$PORT"
echo
LOG="/tmp/tigre-codeclass-web.log"
nohup "$SWIFT" run TigreApp serve --port "$PORT" --project-root "$PROJECT_DIR" > "$LOG" 2>&1 &
SERVER_PID=$!
echo " PID do servidor: $SERVER_PID (log: $LOG)"
echo
# Abre o navegador padrao assim que o servidor responder (nao trava o boot)
(
for _ in $(seq 1 45); do
if curl -s -o /dev/null "http://localhost:$PORT"; then
open "http://localhost:$PORT"
break
fi
sleep 1
done
) &
# Mostra o log por alguns segundos para confirmar o boot
sleep 5
echo "--- primeiras linhas do log ---"
tail -10 "$LOG"
echo
echo "============================================================"
echo " Servidor novo (codeclass) no ar em http://localhost:$PORT"
echo " Para encerrar: lsof -ti:$PORT | xargs kill -9"
echo "============================================================"