pub-solar-os/shell/hooks/pre-commit.sh
teutat3s 03e6c47086
pre-commit hook: fix shellcheck SCSC2181
Check exit code directly with e.g. if mycmd;
not indirectly with $?

https://github.com/koalaman/shellcheck/wiki/SC2181
2022-04-09 15:42:36 +02:00

29 lines
689 B
Bash
Executable file

#!/usr/bin/env bash
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(${git}/bin/git hash-object -t tree /dev/null)
fi
diff="git diff-index --name-only --cached $against --diff-filter d"
mapfile -t nix_files < <($diff -- '*.nix')
mapfile -t all_files < <($diff)
# Format staged nix files.
if [[ -n "${nix_files[@]}" ]]; then
nixpkgs-fmt "${nix_files[@]}" \
&& git add "${nix_files[@]}"
fi
# check editorconfig
if ! editorconfig-checker -- "${all_files[@]}"; then
printf "%b\n" \
"\nCode is not aligned with .editorconfig" \
"Review the output and commit your fixes" >&2
exit 1
fi