Patch release: line-faithful $0 handling, the emit inspection command, and a dockerized cross-shell compatibility suite. No breaking changes.
Fixes
$0rewrite for shebang-less scripts now applies (previously$0stayed the fd path on bash>=5 / zsh when the script had no shebang). (#3, closes #1)$0reset is line-faithful and lint-clean. The reset is joined onto the first body line with;instead of swapping the shebang, so error line numbers stay exact and the served copy keeps its shell dialect (no addedshellcheckfindings). (#4)
New
scriptbox emit [INTERP] <SCRIPT>prints the exact bytes scriptbox would hand the interpreter after the$0rewrite - useful for inspection and as ashellchecktarget. Honors--argv0and frontmatter. (#4, #5)emit --subscripts(full-featured builds) recursively dumps the whole reachable tree - the script plus every resolvablesourceinclude and shell child - under# ==> <path>headers, with dynamic/immune sites noted rather than dropped. (#6)- Dockerized cross-shell compatibility suite (
compat/): transparency, insulation,$0, and "no added linter findings" checks across bash/zsh/dash/ksh, plus a read-only pass over real public installers. (#2)
Install
brew install jhheider/tap/scriptbox # or: brew upgrade scriptbox
curl -fsSL https://heider.cc/scriptbox.sh | sh