diff --git a/.gitattributes b/.gitattributes index fdca880b3..f12364de3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,3 +7,4 @@ scripts/* text eol=lf *.jpg -text *.png -text *.pdf -text +scripts/erlfmt -text diff --git a/scripts/erlfmt b/scripts/erlfmt new file mode 100755 index 000000000..0c42bdf92 Binary files /dev/null and b/scripts/erlfmt differ diff --git a/scripts/git-hook-pre-commit.sh b/scripts/git-hook-pre-commit.sh new file mode 100755 index 000000000..7b9e06385 --- /dev/null +++ b/scripts/git-hook-pre-commit.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -euo pipefail + +files="$(git diff --cached --name-only | grep -E '.*\.erl' || true)" +if [[ "${files}" == '' ]]; then + exit 0 +fi +files="$(echo -e "$files" | xargs)" +# shellcheck disable=SC2086 +./scripts/erlfmt -c $files diff --git a/scripts/git-hooks-init.sh b/scripts/git-hooks-init.sh index fd47dd46f..6b85e23e3 100755 --- a/scripts/git-hooks-init.sh +++ b/scripts/git-hooks-init.sh @@ -11,3 +11,7 @@ mkdir -p ".git/hooks" if [ ! -L '.git/hooks/pre-push' ]; then ln -sf '../../scripts/git-hook-pre-push.sh' '.git/hooks/pre-push' fi + +if [ ! -L '.git/hooks/pre-commit' ]; then + ln -sf '../../scripts/git-hook-pre-commit.sh' '.git/hooks/pre-commit' +fi