#!/usr/bin/env sh
set -eu

if ! git diff --name-only --cached | while IFS= read -r file; do
  [ -n "$file" ] || continue
  git diff --quiet -- "$file" || exit 1
done; then
  printf '%s\n' "ERROR: Some staged files have unstaged changes" >&2
  exit 1
fi

pnpm exec biome check --write --staged --files-ignore-unknown=true --no-errors-on-unmatched
git update-index --again
