Add configuration files and scripts for project standards enforcement
continuous-integration/drone/push Build is failing
continuous-integration/drone/push Build is failing
- Introduced .editorconfig for consistent coding styles. - Added .gitattributes to manage line endings and text attributes. - Created README.md for Git hooks usage and configuration. - Implemented pre-commit hook to enforce executable permissions and LF line endings for shell scripts. - Updated .gitignore to include additional build artifacts and directories. - Enhanced AGENTS.md and Definition of Done documentation with testing standards. - Modified reconciliation scripts to include new configuration files and templates.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
failed=0
|
||||
cr=$(printf '\r')
|
||||
|
||||
staged_shell_files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.sh$' || true)
|
||||
|
||||
for file in $staged_shell_files; do
|
||||
mode=$(git ls-files --stage -- "$file" | awk '{print $1}')
|
||||
if [ "$mode" != "100755" ]; then
|
||||
echo "ERROR: $file is not executable in Git index. Run: git add --chmod=+x $file" >&2
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if git show ":$file" | grep -q "$cr"; then
|
||||
echo "ERROR: $file contains CRLF in staged content. Use LF line endings." >&2
|
||||
failed=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$failed" -ne 0 ]; then
|
||||
echo "Pre-commit check failed." >&2
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user