6e3fc6cc2a
Co-authored-by: Kandev Agent <agent@kandev.dev>
31 lines
823 B
Bash
31 lines
823 B
Bash
#!/usr/bin/env bash
|
|
# Pre-commit supplies repository-relative Go filenames. Lint their complete
|
|
# packages for type information; CI owns the full-backend scan.
|
|
set -euo pipefail
|
|
unset GIT_DIR GIT_WORK_TREE GIT_COMMON_DIR GIT_INDEX_FILE \
|
|
GIT_OBJECT_DIRECTORY GIT_ALTERNATE_OBJECT_DIRECTORIES
|
|
|
|
cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
|
|
|
packages=()
|
|
for file in "$@"; do
|
|
case "$file" in
|
|
apps/backend/*.go) ;;
|
|
*) continue ;;
|
|
esac
|
|
package="./${file#apps/backend/}"
|
|
package=${package%/*}
|
|
for existing in ${packages[@]+"${packages[@]}"}; do
|
|
if [ "$existing" = "$package" ]; then
|
|
continue 2
|
|
fi
|
|
done
|
|
packages+=("$package")
|
|
done
|
|
|
|
[ "${#packages[@]}" -gt 0 ] || exit 0
|
|
|
|
base=$(scripts/resolve-go-lint-base --comparison-base)
|
|
cd apps/backend
|
|
exec golangci-lint run "${packages[@]}" --new-from-rev="$base" --timeout=5m
|