Repository navigation
v0.2.0 — reliability & tests
[0.2.0] - 2026-06-13
Reliability and testability pass. No breaking changes.
Fixed
- Remote argument quoting —
run_compose's ssh path built the command with
a bare"$*", so an argument likesh -c "pg_dump | gzip"split at the pipe
on the remote shell (the pipe became a separate remote command — a data-loss
risk), and spaces within an argument became separate words. Arguments and the
remotecdtarget are now serialized withprintf '%q'. Local execution was
already correct and is unchanged. - Removed a no-op
TAIL=...env assignment on therestartlogs line
(shellcheck SC2097/SC2098); the trailing${TAIL:-20}already applied the
default, so behavior is unchanged.
Added
- Test suite (bats) — unit tests for the registry parser (
get_field,
list_services), target resolution (resolve), compose-file assembly, and
remote ssh argument serialization. 22 tests. - CI — GitHub Actions runs shellcheck and the bats suite on every push and
pull request.
Changed
- Internal refactor — all logic moved into functions;
main()runs only
when the script is executed directly (sourcing exposes functions for tests
without side effects). No change to the command-line behavior.