#!/usr/bin/env bash

set -euo pipefail

REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
BANNED_PACKAGE='go-'"sqlmock"

pathspecs=(
  ':(glob)**/*.go'
  ':(glob)**/go.mod'
  ':(glob)**/go.work'
  ':(glob)**/vendor/modules.txt'
)

set +e
matches="$(git -C "$REPO_ROOT" grep -n -I -i -F "$BANNED_PACKAGE" -- "${pathspecs[@]}" 2>&1)"
status=$?
set -e

case "$status" in
  0)
    echo "::error title=Forbidden Go dependency::The sqlmock package must not be added to Go source or module metadata."
    printf '%s\n' "$matches"
    exit 1
    ;;
  1)
    echo "ok: sqlmock is absent from Go source and module metadata"
    ;;
  *)
    printf 'failed to scan for the forbidden sqlmock package:\n%s\n' "$matches" >&2
    exit "$status"
    ;;
esac
