grep ships as its own standalone WASM module (not part of the coreutils
multicall binary) and depends on the Oniguruma C library, so the website
workflow now checks out uutils/grep, installs the WASI SDK to provide a
wasm sysroot for the onig_sys C sources, builds grep.wasm, and appends
"grep" to the generated command list.
The terminal loads grep.wasm as an optional second module and dispatches
grep directly (argv[0] = "grep"). grep defaults to --color=never since the
WASI shim reports stdout as a TTY, which would otherwise emit match-
highlight escapes that corrupt piped output; explicit --color is honored.
Adds a grep emoji example and grep WASM integration tests.
Alongside the coreutils WASM commit, record the website repo's
commit/date in version.js (SITE_VERSION) and display it next to
the existing build info on the playground.
`true` and `false` ship in the WASM binary, but are not a useful demonstration because they produce no output and there is no facility to check exit code in the playground.
`yes` ships in the WASM binary but its infinite output just spams the
terminal, so filter it out of the generated WASM_COMMANDS list. Done
in the workflow so a single regex covers both autocomplete/help (via
AVAILABLE_COMMANDS) and the rendered prose section.
Zola auto-generates id="available-commands" on the "Available commands"
<h2>. The placeholder <p> shared that id, so getElementById matched the
heading first and the populate-from-WASM_COMMANDS script ended up
overwriting the heading text — rendering the command list at h2 size.
Rename the placeholder to a non-colliding id.
Replaces the hand-maintained inline-code list in playground.md with
a placeholder that the page script fills from the build-generated
WASM_COMMANDS, so the prose section stays in sync with the actual
feat_wasm contents of the WASM binary.
Previously the list of WASM-bundled utilities was hardcoded in
wasm-terminal.js and playground.md, which drifted from the actual
feat_wasm feature in coreutils/Cargo.toml (e.g. dd, tty, yes were
missing). The website workflow now parses feat_wasm at build time
and emits static/wasm/commands.js, which the terminal prefers over
its built-in fallback list.
The heredoc body for version.js was at column 0 while the surrounding
run block is indented 10 spaces, causing YAML to terminate the block
scalar and fail with 'Invalid workflow file' at line 146. Replace the
heredoc with a grouped echo block that respects the block indentation.
Emit a version.js alongside the WASM binary in CI recording the
coreutils commit used for the build, and display it under the
terminal with a link to the commit on GitHub.