#!/bin/sh # Source husky # shellcheck disable=SC1091 . "$(dirname -- "$0")/_/husky.sh" echo "FunctionalHacker's dotfile pre-commit hook start" printf "Using shell: %s \n" "$(readlink /proc/$$/exe)" # All staged files 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 '^$' || 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" git add "$staged_toml" fi # Run lua-format on staged Lua files 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 printf "\nRunning prettier on all supported files\n" npx pretty-quick --staged