aur/update.sh

57 lines
No EOL
1.7 KiB
Bash
Executable file

#!/bin/bash
# 配置仓库信息
REPO_USER="lbjlaq"
REPO_NAME="Antigravity-Manager"
echo "==> 正在检查 GitHub 最新版本..."
# 1. 获取 GitHub 最新 Release 版本号
# 使用 GitHub API 获取 latest release 的 tag_name
LATEST_TAG=$(curl -s "https://api.github.com/repos/$REPO_USER/$REPO_NAME/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# 获取失败处理
if [ -z "$LATEST_TAG" ]; then
echo "!! 错误: 无法获取最新版本信息,请检查网络或 GitHub API 限制。"
exit 1
fi
# 去掉可能存在的 'v' 前缀 (例如 v3.3.6 -> 3.3.6)
NEW_VER=${LATEST_TAG#v}
# 2. 读取当前 PKGBUILD 中的版本
CURRENT_VER=$(grep "^pkgver=" PKGBUILD | cut -d'=' -f2)
echo " 本地版本: $CURRENT_VER"
echo " 最新版本: $NEW_VER"
if [ "$NEW_VER" == "$CURRENT_VER" ]; then
echo "==> 当前已是最新版本,无需更新。"
exit 0
fi
echo "==> 发现新版本!开始执行更新流程..."
# 3. 更新 PKGBUILD
# 修改 pkgver
sed -i "s/^pkgver=.*/pkgver=$NEW_VER/" PKGBUILD
# 重置 pkgrel 为 1
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
echo " 已更新 PKGBUILD 版本号"
# 4. 更新校验和 (需要 pacman-contrib 包)
if command -v updpkgsums >/dev/null 2>&1; then
echo "==> 正在下载源文件并更新 sha256sums..."
updpkgsums
else
echo "!! 警告: 未找到 'updpkgsums' 命令。请安装 pacman-contrib (sudo pacman -S pacman-contrib),否则需要手动更新校验和。"
fi
# 5. 生成 .SRCINFO
echo "==> 正在生成 .SRCINFO..."
makepkg --printsrcinfo > .SRCINFO
echo "==> 更新完成!准备就绪。"
echo " 版本: $NEW_VER"
echo " 后续操作: git commit -am \"Update to $NEW_VER\" && git push"