From 895cf7706b303c030f289587739243e803792ccb Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Fri, 16 Sep 2022 19:45:32 +0300 Subject: [PATCH] Add support for shfmt in git pre-commit hook --- .husky/pre-commit | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 80df2dc..25bf921 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,8 +1,5 @@ #!/bin/sh -# Exit on error -set -e - # Source husky # shellcheck disable=SC1091 . "$(dirname -- "$0")/_/husky.sh" @@ -14,9 +11,9 @@ printf "Using shell: %s \n" "$(readlink /proc/$$/exe)" staged_files=$(git diff --name-only --cached) # Run taplo on staged TOML files -staged_toml=$(echo "$staged_files" | grep ".toml$" || true) -num_staged_toml=$(echo "$staged_toml" | grep -vce '^$') -if [ "$num_staged_toml" -ne "0" ]; then +staged_toml=$(echo "$staged_files" | grep '.toml$' || true) +num_staged_toml=$(echo "$staged_toml" | grep -vce '^$' || true) +if [ "$num_staged_toml" -gt 0 ]; then printf '\nFormatting %s staged TOML files with taplo\n' "$num_staged_toml" taplo format "$staged_toml" printf "Re-staging\n" @@ -24,16 +21,26 @@ if [ "$num_staged_toml" -ne "0" ]; then fi # Run lua-format on staged Lua files -staged_lua=$(echo "$staged_files" | grep ".lua$" || true) -num_staged_lua=$(echo "$staged_lua" | grep -vce '^$') -if [ "$num_staged_lua" -ne "0" ]; then +staged_lua=$(echo "$staged_files" | grep '.lua$' || true) +num_staged_lua=$(echo "$staged_lua" | grep -vce '^$' || true) +if [ "$num_staged_lua" -gt 0 ]; then printf '\nFormatting %s staged Lua files with lua-format\n' "$num_staged_lua" lua-format -i "$staged_lua" printf "Re-staging\n\n" git add "$staged_lua" fi +# Run shfmt on staged shell scripts +staged_sh=$(echo "$staged_files" | grep -E '(.sh$|pre-commit)' || true) +num_staged_sh=$(echo "$staged_sh" | grep -vce '^$' || true) +if [ "$num_staged_sh" -gt 0 ]; then + printf '\nFormatting %s staged shell scripts with shfmt\n' "$num_staged_sh" + shfmt -w "$staged_sh" + printf "Re-staging\n\n" + git add "$staged_sh" +fi + # Run prettier on all other staged files # that are supported -echo "Running prettier on all supported files" +printf "\nRunning prettier on all supported files\n" npx pretty-quick --staged