Adopt the standard tooling from sneak/prompts: the Makefile and script/
entrypoints, lint and test stages in one Dockerfile, the canonical lint
config, the CI workflow and the formatter settings. make fmt also formats
Go, using a pinned Go that script/bootstrap installs. Change the module
path to sneak.berlin/go/dcf.
Fix the lint findings in pkg/dcf in place. DCFStore becomes Store and
DCFObject becomes Object. Three behaviours change. An error listing mount
points is now returned, where a typo used to drop it. Store.String() prints
Store{ instead of DCFStore{. It prints a negative total as 0 B instead of a
huge size.
Replace the placeholder test with real tests. Move the README into the
required sections. make build now compiles the library; it pointed at a
command that does not exist.
Model: opus-5-5
38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/fmt: format all files (writes): the Go code with go fmt, then
|
|
# the Markdown files with prettier.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
# Where script/bootstrap installs Go; it cannot put it on our PATH.
|
|
PATH="$HOME/.local/go/bin:$PATH"
|
|
|
|
# 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"
|
|
# Before prettier, because run_yarn replaces this shell with yarn.
|
|
go fmt ./...
|
|
run_yarn run prettier --write '**/*.md' --tab-width 4 --prose-wrap always
|
|
}
|
|
|
|
main "$@"
|