diff --git a/scripts/store-gc.sh b/scripts/store-gc.sh index 5742441f..db3a64e1 100755 --- a/scripts/store-gc.sh +++ b/scripts/store-gc.sh @@ -159,10 +159,13 @@ espacio() { # du sobre una lista de dirs, tolerante a lista vacía # ⚠ `du --files0-from=-` es de GNU coreutils y **busybox no lo tiene** (medido en la caja takana # el 2026-09-17): devolvía vacío, así que el gc anunciaba «espacio: superados · huérfanos » y # nadie podía saber si valía la pena correrlo. Un número que falta se lee como un número chico. - # `xargs du -sk` anda en los dos mundos; el total lo suma awk, en KiB, y se imprime humano. + # `xargs -0 du -sk` anda en los dos mundos; el total lo suma awk, en KiB, y se imprime humano. + # ⚠ `xargs -d '\n'` NO sirve: `-d` también es extensión GNU y busybox la rechaza — el primer + # intento de este arreglo imprimió «huérfanos ?» en la caja. El `?` es a propósito: un total que + # no se pudo calcular se DICE, no se muestra como 0. [ -s "$1" ] || { echo "0"; return; } sed "s|^|$STORE/|" "$1" \ - | xargs -d '\n' du -sk 2>/dev/null \ + | tr '\n' '\0' | xargs -0 du -sk 2>/dev/null \ | awk '{t+=$1} END { if (t=="") {print "?"; exit} if (t>1048576) printf "%.1fG\n", t/1048576;