#!/usr/bin/env bash # test-pipeline.sh — roda o pipeline completo sem postar no LinkedIn # Usa workspace de teste separado para não contaminar o real. # # Uso: bash test-pipeline.sh [slug] # slug: força um slug específico do _sugestoes.md (opcional) # # Para desfazer tudo depois: bash test-cleanup.sh set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" TEST_WS="$SCRIPT_DIR/workspace-test" BINS="$SCRIPT_DIR/bin" # Copiar _sugestoes.md para o workspace de teste mkdir -p "$TEST_WS/_inbox" cp "$SCRIPT_DIR/workspace/_inbox/_sugestoes.md" "$TEST_WS/_inbox/_sugestoes.md" echo "" echo "══════════════════════════════════════════════" echo " ldpost — PIPELINE DE TESTE" echo " Workspace: $TEST_WS" echo "══════════════════════════════════════════════" echo "" # ── 1. Evaluator ────────────────────────────────────────────────────────────── echo "▶ [1/5] Evaluator — sorteio + aprovação no Telegram..." if [[ -n "${1:-}" ]]; then EVALUATOR_FLAGS="--force-slug $1" else EVALUATOR_FLAGS="" fi SLUG=$("$BINS/ldpost-evaluator.exe" \ --workspace "$TEST_WS" \ $EVALUATOR_FLAGS \ 2>&1 | tee /dev/stderr | tail -1) if [[ -z "$SLUG" ]]; then echo "❌ Evaluator não retornou slug. Abortando." exit 1 fi echo "" echo "✅ Slug criado: $SLUG" echo "" # ── 2. Redator ──────────────────────────────────────────────────────────────── echo "▶ [2/5] Redator — gerando rascunho via Groq..." "$BINS/ldpost-redator.exe" \ --workspace "$TEST_WS" \ --post "$SLUG" echo "" # ── 3. Editor ───────────────────────────────────────────────────────────────── echo "▶ [3/5] Editor — formatando para LinkedIn..." echo " (modo não-interativo — use --no-interactive para pular loop)" "$BINS/ldpost-editor.exe" \ --workspace "$TEST_WS" \ --post "$SLUG" \ --no-interactive echo "" # ── 4. Director ─────────────────────────────────────────────────────────────── echo "▶ [4/5] Director — revisão final no Telegram (sem imagens)..." "$BINS/ldpost-director.exe" \ --workspace "$TEST_WS" \ --post "$SLUG" \ --skip-images echo "" # ── 5. Publisher (manual — não posta) ───────────────────────────────────────── echo "▶ [5/5] Publisher — modo manual (NÃO posta no LinkedIn)" echo " Quando pedir URL do post, pressione Enter para pular." echo "" "$BINS/ldpost-publisher.exe" \ --workspace "$TEST_WS" \ --post "$SLUG" \ --manual echo "" echo "══════════════════════════════════════════════" echo " Pipeline de teste concluído!" echo " Para limpar: bash test-cleanup.sh" echo "══════════════════════════════════════════════"