hbox-docs/scripts/tablero.sh

50 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# El tablero de pendientes desde la Mac (21-oct-2026).
# Claude no llega al servidor: deja sus cambios al tablero en lotes (backend/lotes/*.json) y lee el
# tablero en la foto (_estado/, fuera de git). Este script lleva los lotes y trae la foto.
#
# ./scripts/tablero.sh foto baja pendientes, enfoque y actividad a _estado/ (solo lee)
# ./scripts/tablero.sh revisar sube los lotes y muestra qué cambiaría cada uno (no escribe)
# ./scripts/tablero.sh aplicar los aplica (lo ya aplicado se salta) y baja la foto nueva
# ./scripts/tablero.sh estado foto + una línea con lo que falta aplicar (lo llama deploy.sh)
#
# Variables: REMOTE (leo@git.helgen.online), SSH_PORT (22), BACKEND_PATH (…/hbox-docs/backend).
# Formato de los lotes y reglas: backend/lotes/README.md.
set -euo pipefail
cd "$(dirname "$0")/.."
REMOTE="${REMOTE:-leo@git.helgen.online}"
PORT="${SSH_PORT:-22}"
BACKEND_PATH="${BACKEND_PATH:-/srv/projects/drogheda/hbox-docs/backend}"
PY="$BACKEND_PATH/venv/bin/python3" # el mismo Python del servicio; tablero.py solo usa la biblioteca estándar
subir() {
rsync -az -e "ssh -p $PORT" backend/tablero.py "$REMOTE:$BACKEND_PATH/"
rsync -az -e "ssh -p $PORT" backend/lotes/ "$REMOTE:$BACKEND_PATH/lotes/" # sin --delete
}
remoto() { # remoto <acción> → corre tablero.py en el servidor
ssh -p "$PORT" "$REMOTE" "$PY $BACKEND_PATH/tablero.py $1 $BACKEND_PATH/lotes"
}
foto() {
mkdir -p _estado
if ssh -p "$PORT" "$REMOTE" "$PY $BACKEND_PATH/tablero.py foto" > _estado/tablero.json.nuevo; then
mv _estado/tablero.json.nuevo _estado/tablero.json
python3 backend/tablero.py resumen _estado/tablero.json > _estado/tablero.md
echo "Foto del tablero en _estado/tablero.md ($(grep -c '^- ' _estado/tablero.md || true) líneas)"
else
rm -f _estado/tablero.json.nuevo
echo "No se pudo bajar la foto del tablero (¿el servicio actas-hbox está arriba?)" >&2
return 2
fi
}
case "${1:-}" in
foto) subir; foto ;;
revisar) subir; remoto revisar ;;
aplicar) subir; remoto aplicar; foto ;;
estado) subir; foto; remoto pendientes ;;
*) sed -n '2,12p' "$0" | sed 's/^# \{0,1\}//'; exit 1 ;;
esac