large-shell-program
shell program contains at least 200 substantive lines
Why
Large shell programs lack the static type checking and structured interfaces available to application languages, making orchestration and domain logic harder to evolve safely.
Fix
Move substantive logic into a fully annotated Python CLI or module covered by Ruff, Sarj Python, and strict BasedPyright; retain only a thin shell adapter when the platform requires one.
Examples
#!/bin/shrun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_steprun_step#!/bin/shexec python -m tools.release "$@"Files
**/*.sh**/*.bash**/*.zshextensionless shell scripts