chore: publish-crates.sh espera/reintenta en rate-limit (429)

This commit is contained in:
Sergio
2026-06-18 18:40:42 +00:00
parent 993b7625b8
commit efe361545d
+13 -20
View File
@@ -1,29 +1,22 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Publica llimphi a crates.io en orden de dependencias (deps primero). # Publica llimphi a crates.io en orden de dependencias, esperando solo en rate-limit.
# # REQUIERE: cargo login <token> (una vez). Uso: ./publish-crates.sh
# ANTES de correr (una sola vez): # Reanudable: salta los ya publicados; en 429 espera 11 min y reintenta el mismo.
# 1) Andá a https://crates.io/settings/tokens y creá un token (login con GitHub).
# 2) cargo login <tu-token>
#
# Después: ./publish-crates.sh
# Es reanudable: si se corta (rate-limit, red), volvé a correrlo — los ya
# publicados se saltan solos.
set -u set -u
cd "$(dirname "$0")" cd "$(dirname "$0")"
while read -r c; do while read -r c; do
[ -z "$c" ] && continue [ -z "$c" ] && continue
echo ">>> publicando $c" while true; do
if out=$(cargo publish -p "$c" 2>&1); then echo ">>> publicando $c"
echo " ok" if out=$(cargo publish -p "$c" 2>&1); then echo " ok"; break; fi
else if echo "$out" | grep -qiE "already (been )?uploaded|already exists|is already"; then
if echo "$out" | grep -qiE "already (been )?uploaded|already exists|crate version .* is already"; then echo " (ya estaba, sigo)"; break
echo " (ya estaba publicado, sigo)"
else
echo "$out" | tail -8
echo "!!! se detuvo en: $c — revisá el error de arriba, arreglá y re-corré el script"
exit 1
fi fi
fi if echo "$out" | grep -qiE "429|Too Many Requests|rate.?limit"; then
echo " rate-limit; espero 11 min y reintento $c"; sleep 660; continue
fi
echo "$out" | tail -8; echo "!!! error real en $c — corregir y re-correr"; exit 1
done
sleep 3 sleep 3
done < PUBLISH-ORDER.txt done < PUBLISH-ORDER.txt
echo "=== TODO PUBLICADO ===" echo "=== TODO PUBLICADO ==="