You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
src/scriptapps — Entry-Point Scripts for Punk Apps
Purpose
Standalone Tcl scripts that serve as entry points for Punk applications and utilities. Includes wrapper generators, runtime fetchers, build helpers, and test scripts for external languages.
Ownership
- Shared between maintainer and agents. Agents may edit when asked but should preserve the existing entry-point contract of each script.
- The
wrappers/subdirectory contains TOML configuration and generated wrapper scripts.
Local Contracts
- Scripts here are invoked directly by the user or by build tools, not loaded as packages.
- Wrapper configs (
.tomlfiles) define how scripts are packaged as platform executables. <name>_wrap.tomlscriptsets are the SOURCE of the generated polyglot.cmdscripts in<projectroot>/bin, and bin-deployed scriptsets live in thebin/subfolder here (e.gbin/runtime.ps1+bin/runtime.bash+bin/runtime_wrap.toml-><projectroot>/bin/runtime.cmdviapunk::mix::commandset::scriptwrap::multishell runtime -askme 0, run fromsrc/scriptapps/bin, alongside thegetzig.*scriptset). Fixes to abin/*.cmdpolyglot are made in the scriptset sources and re-wrapped - never in the output file. Regenerate and commit the bin output together with payload changes:src/tests/modules/punk/mix/testsuites/scriptwrap/multishell.testpins the runtime scriptset round-trip byte-identical againstbin/runtime.cmd.- The
spud/directory holds the spud build tool's app scripts. - The
tools/directory holds miscellaneous build and deployment utilities.
Work Guidance
- When adding a new script app, follow the naming pattern:
<name>.tclwith optional<name>_wrap.toml. - Test scripts for non-Tcl languages (bash, PowerShell, Perl, Python) live in
test_bash/,test_pwsh/, etc. - The
bin/subdirectory is not the same as the project rootbin/; it holds app-specific launchers.
Verification
- Existing scripts run without import errors in the project environment.
Child DOX Index
wrappers/— TOML wrapper configs and generated wrappersspud/— Spud build tool app scriptstools/— Build and deployment utilitiesbin/— App-specific launchers