#!/usr/bin/env bash

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

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

commit_msg=$(cat "$1")

# Если сообщение коммита пустое или содержит только пробелы/комментарии, отменяем коммит
clean_msg=$(echo "$commit_msg" | sed '/^#/d; s/^[[:space:]]*//; s/[[:space:]]*$//')
[ -z "$clean_msg" ] && echo "Aborting commit due to empty commit message." && exit 1

# Пропускаем специальные коммиты
echo "$commit_msg" | grep -qE "^release: publishing new version|^Merge (branch|commit|remote-tracking)|^(Merge pull request|Squash and merge|Rebase and merge)|^Revert |^\(cherry picked from commit" && exit 0

# Устанавливаем переменную окружения для выбора конфига commitlint
itcase_export_release_branch_env

npx commitlint --edit "$1"
