/
sapertlt
/
layout_switcher
Обзор
Документация
Войти
/
sapertlt
/
layout_switcher
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
scripts/bump-version.sh
70 строк
2 KB
Andrey Nikolaev
feat: расширенная коррекция по паузам ввода + автоинкремент версии v0.1.2
15 июн 2026, 10:29
15 июн 2026, 10:29
2aa363b
Код
Авторство
О чём код?
#!/usr/bin/env bash # ============================================================================ # Скрипт автоматического инкремента версии Layout Switcher. # # Единый источник версии: src/layout_switcher/__init__.py (__version__) # Скрипт обновляет версию в __init__.py и pyproject.toml синхронно. # # Использование: # scripts/bump-version.sh # patch: 0.1.0 → 0.1.1 # scripts/bump-version.sh minor # minor: 0.1.0 → 0.2.0 # scripts/bump-version.sh major # major: 0.1.0 → 1.0.0 # ============================================================================ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" INIT_FILE="$PROJECT_DIR/src/layout_switcher/__init__.py" PYPROJECT_FILE="$PROJECT_DIR/pyproject.toml" # --- Определяем тип инкремента --- BUMP_TYPE="${1:-patch}" # По умолчанию: patch if [[ "$BUMP_TYPE" != "patch" && "$BUMP_TYPE" != "minor" && "$BUMP_TYPE" != "major" ]]; then echo "Использование: $0 [patch|minor|major]" echo " patch — 0.1.0 → 0.1.1 (по умолчанию)" echo " minor — 0.1.0 → 0.2.0" echo " major — 0.1.0 → 1.0.0" exit 1 fi # --- Читаем текущую версию из __init__.py --- CURRENT_VERSION=$(grep -oP "__version__\s*=\s*['\"]\\K[^'\"]*" "$INIT_FILE") if [[ -z "$CURRENT_VERSION" ]]; then echo "Ошибка: не удалось прочитать __version__ из $INIT_FILE" exit 1 fi # --- Разбиваем на компоненты --- IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" # --- Инкрементируем --- case "$BUMP_TYPE" in major) MAJOR=$((MAJOR + 1)) MINOR=0 PATCH=0 ;; minor) MINOR=$((MINOR + 1)) PATCH=0 ;; patch) PATCH=$((PATCH + 1)) ;; esac NEW_VERSION="$MAJOR.$MINOR.$PATCH" # --- Обновляем __init__.py --- sed -i "s/__version__ = '[^']*'/__version__ = '${NEW_VERSION}'/" "$INIT_FILE" # --- Обновляем pyproject.toml --- sed -i "s/^version = \"[^\"]*\"/version = \"${NEW_VERSION}\"/" "$PYPROJECT_FILE" echo "Версия обновлена: $CURRENT_VERSION → $NEW_VERSION" echo " • $INIT_FILE" echo " • $PYPROJECT_FILE"