Repository navigation
Development and Testing
From a checkout:
bash -n binman.sh
binman test stress --quickThe stress test is the quickest way to find out whether a change has annoyed the installer, the app detector, or both.
The stress harness creates temporary fixtures and exercises single-file copy installs, link-mode apps, app shims, manifests, uninstall, PATH handling, odd filenames, backup, restore, and related paths. Useful controls include:
--quick shorter run
--jobs N parallel jobs
--verbose detailed output
--keep retain temporary fixtures
Some TUI paths require /dev/tty; a non-TTY test runner can report that the
terminal is unavailable even when the core installer is healthy.
Before committing changes:
bash -n binman.sh
git diff --check
groff -man -Tutf8 binman.1 >/dev/null
binman test stress --quickFor bundled scripts, remember that findinfiles.sh is Python 3 with a shell
extension. Run it with its interpreter or through BinMan rather than assuming
every .sh file is Bash.
Prefer explicit targets and flags in automation. Capture exit statuses. Use temporary directories for generated archives and ensure generated backups, bundles, stress fixtures, and local screenshots are ignored before committing. When a feature touches disks, network interfaces, containers, sudo, or GitHub, test the dry-run and confirmation path as well as the happy path.