spr had no .gitattributes at all, despite shipping ctrl/*.sh and generating gen/<room>/ctrl/*.sh. A checkout on Windows/WSL rewrites those to CRLF, and a shell script with CRLF fails as `bad interpreter: /usr/bin/env bash^M` — which reads as a broken installer rather than a line-ending problem. Copied verbatim from rig/.gitattributes and deliberately duplicated rather than shared: rig/ has to carry its own so it survives being handed over alone. No tracked file in either repo currently has CRLF, so `git add --renormalize .` rewrote nothing. Landing it now, while that is true, keeps it off the diff of whatever lands next. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
28 lines
982 B
Plaintext
28 lines
982 B
Plaintext
# Copied verbatim from rig/.gitattributes, and deliberately duplicated rather
|
|
# than shared: rig/ must carry its own so it survives being handed over on its
|
|
# own, and spr had none at all despite shipping ctrl/*.sh and generating
|
|
# gen/<room>/ctrl/*.sh.
|
|
#
|
|
# Line endings are normalised to LF in the repository and on checkout, on every
|
|
# platform. Without this, a checkout on Windows/WSL rewrites files to CRLF and
|
|
# every one of them shows up as modified without anyone having touched it.
|
|
#
|
|
# For the scripts it is not cosmetic: a shell script with CRLF fails on Linux
|
|
# with `bad interpreter: /usr/bin/env bash^M`, which reads as a broken installer
|
|
# rather than a line-ending problem — the worst possible first impression on a
|
|
# machine where nothing has been proven yet.
|
|
* text=auto eol=lf
|
|
|
|
*.sh text eol=lf
|
|
*.py text eol=lf
|
|
*.env text eol=lf
|
|
*.yaml text eol=lf
|
|
*.yml text eol=lf
|
|
|
|
# Never touch binaries.
|
|
*.png binary
|
|
*.jpg binary
|
|
*.zip binary
|
|
*.tar binary
|
|
*.gz binary
|