el aviso, enchufado en la caja — y «al día» con cero instalados era una mentira cómoda

Cron horario de root → /usr/local/bin/avisar-actualizaciones, un envoltorio que sólo fija las rutas
de la caja y llama al guion del repo. La lógica no se copia: comprobado en vivo que arreglar el
guion en el clon cambia la salida del cron sin volver a desplegar nada.

⚠ La primera corrida real destapó un defecto del aviso: con la DB de instalados vacía decía «al
día». Es verdad y no dice nada — peor, se lee como «comprobado y correcto» cuando lo cierto es que
no había NADA que comprobar. Un aviso que suena igual cuando vigila que cuando no vigila nada es
cómo se deja de mirar un aviso. Ahora distingue el caso y lo nombra.

Control en la caja con una DB de juguete (un zsh a otro hash): grita «1 con novedad · hash
distinto» y en la segunda corrida calla.

Y dos piezas que faltaban allá: /var/lib/hammer/trust/release.ed25519.pub (el almacén de confianza
por defecto de la CLI, que no existía ⇒ ahora install/outdated verifican sin pasar --trust) y
/usr/local/bin/takana con el arreglo del §5.5. Ojo: el PATH de la caja no incluye /usr/local/bin,
así que un `takana` a secas sigue siendo el del store; el cron usa rutas absolutas.
This commit is contained in:
Sergio
2026-09-21 20:03:34 +00:00
parent 07867ba23e
commit a63af7b531
2 changed files with 37 additions and 5 deletions
+11 -1
View File
@@ -68,10 +68,20 @@ AHORA="$(huella "$NUEVO")"
mv "$NUEVO" "$STATE"
N=$(python3 -c 'import json,sys; print(len(json.load(open(sys.argv[1])).get("novedades",[])))' "$STATE")
INSTALADOS=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1])).get("instalados",0))' "$STATE")
SELLO="$(date -u +%FT%TZ)"
# ⚠ «Al día» con CERO paquetes instalados es verdad y no dice nada — peor: se lee como «comprobado
# y correcto» cuando lo cierto es que no había nada que comprobar. Medido la primera vez que corrió
# en la caja, cuya DB de instalados ni existe. Un aviso que suena igual cuando vigila que cuando no
# vigila nada es exactamente cómo se deja de mirar un aviso.
if [ "$INSTALADOS" = "0" ]; then
echo "$SELLO · nada instalado por takana en esta máquina (DB $DB) — no hay qué comparar contra $REPO"
exit 0
fi
if [ "$N" = "0" ]; then
echo "$SELLO · al día contra $REPO"
echo "$SELLO · al día contra $REPO ($INSTALADOS paquete(s) comprobado(s))"
exit 0
fi