frontPanel/.husky/scripts/update-changelog.sh
Nastya 2e78e30e3a
Some checks failed
Lint / Lint (push) Has been cancelled
добавлена автозапись в стейджинг
2025-09-08 00:12:32 +03:00

64 lines
2.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Проверяем, что мы в ветке staging
CURRENT_BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null)
if [ "$CURRENT_BRANCH" != "staging" ]; then
echo "Not in staging branch, skipping changelog update"
exit 0
fi
# Получаем последний commit message
COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>/dev/null | head -1)
if [ -z "$COMMIT_MESSAGE" ]; then
echo "No commit message found"
exit 0
fi
# Получаем текущую дату
CURRENT_DATE=$(date +%Y-%m-%d)
CHANGELOG_FILE="CHANGELOG.md"
# Определяем новую версию
if [ -f "$CHANGELOG_FILE" ]; then
# Ищем последнюю версию в формате X.X.X (без v и ##)
LAST_VERSION=$(grep -E '^[0-9]+\.[0-9]+\.[0-9]+' "$CHANGELOG_FILE" | head -1 | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')
if [ -n "$LAST_VERSION" ]; then
# Увеличиваем patch версию (третью цифру)
IFS='.' read -r MAJOR MINOR PATCH <<< "$LAST_VERSION"
NEW_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
echo "Found last version: $LAST_VERSION, new version: $NEW_VERSION"
else
# Если не нашли версию, начинаем с 1.0.1
NEW_VERSION="1.0.1"
echo "No version found, starting from: $NEW_VERSION"
fi
else
NEW_VERSION="1.0.0"
echo "CHANGELOG.md not found, starting from: $NEW_VERSION"
fi
# Создаем временный файл
TEMP_FILE=$(mktemp)
# Добавляем новую запись БЕЗ ##, БЕЗ v, БЕЗ переноса строки
echo "${NEW_VERSION} _ ${CURRENT_DATE} _ ${COMMIT_MESSAGE}" > "$TEMP_FILE"
# Добавляем существующее содержимое БЕЗ пустых строк между записями
if [ -f "$CHANGELOG_FILE" ]; then
# Убираем пустые строки между записями и добавляем содержимое
awk 'NF' "$CHANGELOG_FILE" >> "$TEMP_FILE"
else
# Создаем базовую структуру для нового файла
echo "# Changelog" >> "$TEMP_FILE"
echo "" >> "$TEMP_FILE"
echo "All notable changes to this project will be documented in this file." >> "$TEMP_FILE"
echo "" >> "$TEMP_FILE"
fi
# Заменяем оригинальный файл
mv "$TEMP_FILE" "$CHANGELOG_FILE"
echo "CHANGELOG.md updated to version ${NEW_VERSION}"