#!/usr/bin/env bash
set -euo pipefail
NEW_VERSION="${1:-}"; REPO_PATH="${2:-.}"
if [[ ! -d "$REPO_PATH" ]]; then echo "Error: directory not found: $REPO_PATH" >&2; exit 1; fi
cd "$REPO_PATH"
VERSION_FILE="VERSION"
if [[ -z "$NEW_VERSION" ]]; then
    if [[ -f "$VERSION_FILE" ]]; then
        CUR=$(cat "$VERSION_FILE" | tr -d '[:space:]')
        if [[ "$CUR" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
            IFS='.' read -r MA MI PA <<< "$CUR"; PA=$((PA+1)); NEW_VERSION="${MA}.${MI}.${PA}"
        else NEW_VERSION="0.0.1"; fi
    else NEW_VERSION="0.0.1"; fi
fi
echo "$NEW_VERSION" > "$VERSION_FILE"
git add "$VERSION_FILE"
git commit -m "Bump version to $NEW_VERSION" || true
TAG="v$NEW_VERSION"
if ! git rev-parse "$TAG" >/dev/null 2>&1; then git tag -a "$TAG" -m "Release $TAG"; fi
echo "Version bumped to $NEW_VERSION (tag: $TAG)"
