Format Markdown with prettier in script/fmt and script/fmt-check

script/fmt and script/fmt-check now run prettier over all Markdown
after the Go step. The prettier config, package.json, yarn.lock and the
node and yarn steps of script/bootstrap are copied from sneak/prompts
with the same pinned versions.

script/bootstrap also installs curl when missing: script/install-go
needs it, so a host with only docker and git stopped there.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-10 20:02:10 +00:00
1 parent 13a35a986a
commit 7a3cd581b2
8 files changed
+147 -5

No files matched your search

+20
View File
@@ -4,11 +4,31 @@ set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
# Must match the pin in script/bootstrap.
NODE_VERSION="22.17.0"
# script/bootstrap installs node and yarn under nvm and leaves neither
# on the PATH of the shell that called it, so resolve the pinned
# toolchain here the way bootstrap's own install step does. nvm is a
# bash script, hence the subshell.
run_yarn() {
if command -v yarn >/dev/null 2>&1; then
exec yarn "$@"
fi
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
echo "fmt: no yarn; run script/bootstrap first" >&2
exit 1
fi
exec bash -c '. "$HOME/.nvm/nvm.sh" && nvm use "$1" >/dev/null &&
shift && exec yarn "$@"' bash "$NODE_VERSION" "$@"
}
main() {
cd "$ROOT"
# Where script/bootstrap installs Go when the host has none.
PATH="$PATH:$ROOT/.tool/go/bin"
go fmt ./...
run_yarn run prettier --write '**/*.md' --tab-width 4 --prose-wrap always
}
main "$@"