41 lines
1.1 KiB
Bash
41 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
FILE=".env"
|
|
# 检查 .env 是否被修改
|
|
VERSION_CHANGED=$(git diff --cached "$FILE" | grep -E '^\+version =')
|
|
if [ -n "$VERSION_CHANGED" ]; then
|
|
echo ".env 文件中的版本号已被修改,无需手动更新版本号。"
|
|
exit 0
|
|
fi
|
|
# 读取当前版本号
|
|
CURRENT_VERSION=$(grep -E '^version' $FILE | awk -F'"' '{print $2}')
|
|
echo "current version: $CURRENT_VERSION"
|
|
|
|
# 检查是否找到版本号
|
|
if [ -z "$CURRENT_VERSION" ]; then
|
|
echo "Error: version field not found in $FILE."
|
|
exit 1
|
|
fi
|
|
|
|
# 将版本号分解为主版本号、次版本号和修订号
|
|
MAJOR=$(echo $CURRENT_VERSION | cut -d '.' -f1)
|
|
MINOR=$(echo $CURRENT_VERSION | cut -d '.' -f2)
|
|
PATCH=$(echo $CURRENT_VERSION | cut -d '.' -f3)
|
|
|
|
# 自动加一修订号
|
|
PATCH=$((PATCH + 1))
|
|
|
|
# 构造新的版本号
|
|
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
|
echo "new version: $NEW_VERSION"
|
|
|
|
# 使用 sed 命令更新版本号
|
|
sed -i.bak "s/\(^version = \"\)[^\"]*\(\"\)/\1$NEW_VERSION\2/" "$FILE"
|
|
rm "${FILE}.bak"
|
|
|
|
# 将修改添加到暂存区
|
|
git add "$FILE"
|
|
|
|
# 提醒用户版本号已更新
|
|
echo "Version incremented to $NEW_VERSION"
|