#!/bin/bash

# 版本标签创建与推送脚本
# 使用方法: ./release_tag.sh v0.0.3

# 检查是否提供了版本号参数
if [ -z "$1" ]; then
    echo "错误: 请提供版本号作为参数"
    echo "用法: $0 <版本号>"
    echo "示例: $0 v1.2.3"
    exit 1
fi

# 获取版本号参数
VERSION=$1

# 检查是否在 Git 仓库中
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
    echo "错误: 当前目录不是 Git 仓库"
    exit 1
fi

# 检查是否有未提交的更改
if [ -n "$(git status --porcelain)" ]; then
    echo "警告: 有未提交的更改，建议先提交"
    read -p "是否继续? (y/n): " response
    if [[ ! $response =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# 检查远程仓库是否存在
if ! git remote | grep -q "gitea"; then
    echo "错误: 未找到名为 'gitea' 的远程仓库"
    exit 1
fi

# 创建并推送标签
echo "正在创建标签: $VERSION"
git tag "$VERSION"

if [ $? -ne 0 ]; then
    echo "错误: 创建标签失败"
    exit 1
fi

echo "正在推送标签到 gitea 远程仓库..."
git push gitea "$VERSION"

if [ $? -ne 0 ]; then
    echo "错误: 推送标签失败"
    exit 1
fi

echo "成功! 标签 $VERSION 已创建并推送到 gitea 远程仓库"
