summary refs log tree commit diff
path: root/.husky/pre-commit
blob: 702231b5c0fd3f6b9e4576645eb4e477cb1b67c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env sh
#!nix-shell -i "bash" -p bash prefetch-npm-deps jq nodejs nix-output-monitor
. "$(dirname -- "$0")/_/husky.sh"

# Check if nix is available
if [ -x "$(/usr/bin/env which nix-shell 2>/dev/null)" ]; then
  # Check if we haven't re-executed ourselves yet
  if [ ! "$HOOK_NIX_SHELL" ]; then
    echo "Nix is available, updating nix flake..."
    export HOOK_NIX_SHELL=1
    nix-shell $0
    exit $?
  else
    nix flake update
    # run ./nix-update.sh if package lock has changed and has no unstaged changes
    if [ -n "$(git status --porcelain=v1 2>/dev/null | grep -E '^(MM| M) package-lock.json')" ]; then
      echo "package-lock.json has unstaged changes. Skipping update of nix dependencies."
    elif [ ! -n "$(git status --porcelain=v1 2>/dev/null | grep -E '^M package-lock.json')" ]; then
      echo "package-lock.json has no changes. Skipping update of nix dependencies."
    else
      ./nix-update.sh || exit $?
    fi
  fi
else
  echo "You do not appear to have nix installed. Skipping update of nix dependencies."
fi

npx -y lint-staged