#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# Only run yarn if package.json files have changed
CHANGED_PACKAGE_JSON_FILES=$(git diff --cached --name-only -- ':(glob)**/package.json')
if [ -n "$CHANGED_PACKAGE_JSON_FILES" ]; then
	yarn install --immutable
fi

# Only run build-api for packages with staged changes
CHANGED_PACKAGES=$(git diff --cached --name-only -- packages | cut -d/ -f2 | sort -u)
FILTER_ARGS=""
for pkg in $CHANGED_PACKAGES; do
	if [ -f "packages/$pkg/package.json" ] && grep -q '"build-api"' "packages/$pkg/package.json"; then
		FILTER_ARGS="$FILTER_ARGS --filter=packages/$pkg"
	fi
done
if [ -n "$FILTER_ARGS" ]; then
	ONLY_REFRESH_ASSETS_IF_NECESSARY=1 npx lazy run build-api $FILTER_ARGS
	git add packages/*/api-report.api.md
fi

# Only run build-i18n when dotcom client files change
CHANGED_DOTCOM_CLIENT=$(git diff --cached --name-only -- apps/dotcom/client)
if [ -n "$CHANGED_DOTCOM_CLIENT" ]; then
	npx lazy run build-i18n --filter=apps/dotcom/client
	git add apps/dotcom/client/public/tla/locales
	git add apps/dotcom/client/public/tla/locales-compiled
fi

yarn lint-staged
