#!/bin/sh

# Exit on error
set -e

# 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 '^$')
if [ "$num_staged_toml" -ne "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 '^$')
if [ "$num_staged_lua" -ne "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 prettier on all other staged files
# that are supported
echo "Running prettier on all supported files"
npx pretty-quick --staged
