#!/usr/bin/env bash

# shellcheck disable=SC1091
. "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/_lib.sh"

# Пропускаем в CI окружении
if itcase_is_ci; then
  exit 0
fi

BRANCH="$(itcase_current_branch)"

# Проверяем, является ли текущая ветка защищенной
if [ -n "${PROTECTED_BRANCHES:-}" ]; then
  for protected_branch in $PROTECTED_BRANCHES; do
    if [ "$BRANCH" = "$protected_branch" ]; then
      # Если это merge операция - разрешаем
      if [ -f "$(git rev-parse --git-dir)/MERGE_HEAD" ]; then
        break
      fi

      echo "❌ Прямые коммиты в ветку '$BRANCH' запрещены!"
      echo "   Разрешены только merge коммиты из других веток."
      echo "   Создайте новую ветку и сделайте merge через pull request."
      exit 1
    fi
  done
fi

# Проверка на конфликты слияния
if conflict_files="$(itcase_conflict_marker_files)"; then
  echo 'Fix conflicts'
  printf '%s\n' "$conflict_files" | sed 's/^/  /'
  exit 1
fi

itcase_run_lint_staged
