From cfa469428cd691f8e9814956b340989ccb4743ef Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 25 Aug 2026 21:31:02 -0500 Subject: [PATCH] Add .gitattributes: *.sh text eol=lf for Windows clones Windows clones default to core.autocrlf=true, which checks out CRLF into *.sh working copies even though the committed blobs are byte-clean. The shebang then dies with "env: 'bash\r': No such file or directory" (exit 127), which read like a broken script rather than a line-ending artifact. Assert LF for all shell scripts at the repo root so every Windows clone gets clean scripts/gate.sh, data/icon/generate.sh and data/shader/output.sh. Closes #19 --- .gitattributes | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e4ba11e --- /dev/null +++ b/.gitattributes @@ -0,0 +1,7 @@ +# Force LF line endings for shell scripts. +# Without this, Windows clones (git's core.autocrlf=true default) check out +# CRLF and the shebang dies with: /usr/bin/env: 'bash\r': No such file or directory (exit 127) +# Keep every *.sh blob byte-clean; existing clones need a forced re-checkout +# (rm -f .git/index && git reset --hard HEAD) because git does not rewrite a +# file whose blob is unchanged. +*.sh text eol=lf