mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-09-07 15:07:17 +00:00
Binaries are tens of MB and only growing (Go 1.27 alone added ~655KB to soundtouch-service via its own new stdlib defaults, unrelated to this project's code), while the on-device install target (/mnt/nv) is only tens of MB total. A user already hit "no space left on device" attempting an update on real hardware. Stream the pre-update backup straight through gzip instead of cp-then- gzip: at that point in the script the old binary is still live and the newly-downloaded one is already sitting in the temp dir, so writing an intermediate uncompressed backup copy would briefly need three full binary-sized copies on disk at once. Streaming avoids ever creating that intermediate copy. Falls back to a plain uncompressed backup if gzip is unavailable or the stream fails partway, matching prior behavior exactly. Both GC loops (pre- and post-install) now also prune stale *.backup.gz artefacts, and the README's documented rollback command covers both the compressed and (fallback) uncompressed cases. Verified locally (not yet on real hardware): streaming path produces no uncompressed intermediate, the gzip-unavailable fallback still produces a plain backup, and the documented gunzip+chmod rollback restores a byte-identical, executable binary. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>