带v不带v
This commit is contained in:
62
install.sh
62
install.sh
@@ -700,14 +700,6 @@ download_binary_from_releases() {
|
||||
echo -e "${BLUE} 发布日期: ${latest_created_at}${NC}"
|
||||
fi
|
||||
|
||||
# 构建文件名(根据系统类型)
|
||||
local file_name="agent-${OS_TYPE}-${ARCH}-${latest_tag}"
|
||||
local file_ext="tar.gz"
|
||||
if [ "$OS_TYPE" = "windows" ]; then
|
||||
file_ext="zip"
|
||||
fi
|
||||
local full_file_name="${file_name}.${file_ext}"
|
||||
|
||||
# 获取 release 的详细信息(包含 commit hash)
|
||||
local release_detail=$(curl -s -X GET "${repo_api}/releases/${latest_release_id}" 2>/dev/null)
|
||||
|
||||
@@ -728,14 +720,56 @@ download_binary_from_releases() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# 如果还是无法获取 commit hash,使用 assets_response 继续(不强制要求 commit)
|
||||
local assets_response="$release_detail"
|
||||
# 构建文件名(根据系统类型)
|
||||
# 处理 tag 可能带 v 前缀的情况(如 v1.0.0)
|
||||
local version_in_filename="${latest_tag}"
|
||||
|
||||
# 查找匹配的二进制文件
|
||||
local download_url=$(echo "$assets_response" | grep -o "\"browser_download_url\":\"[^\"]*${full_file_name}[^\"]*\"" | head -1 | cut -d'"' -f4)
|
||||
# 如果 tag 以 v 开头,同时尝试带 v 和不带 v 的文件名
|
||||
local file_ext="tar.gz"
|
||||
if [ "$OS_TYPE" = "windows" ]; then
|
||||
file_ext="zip"
|
||||
fi
|
||||
|
||||
if [ -z "$download_url" ]; then
|
||||
echo -e "${YELLOW}⚠ 未找到匹配的二进制文件: ${full_file_name}${NC}"
|
||||
# 先尝试使用 tag 的原始格式(可能带 v)
|
||||
local file_name_with_v="agent-${OS_TYPE}-${ARCH}-${latest_tag}"
|
||||
local full_file_name_with_v="${file_name_with_v}.${file_ext}"
|
||||
|
||||
# 如果 tag 以 v 开头,也尝试不带 v 的版本
|
||||
local file_name_without_v=""
|
||||
local full_file_name_without_v=""
|
||||
if [ "${latest_tag#v}" != "${latest_tag}" ]; then
|
||||
# tag 以 v 开头,去掉 v 前缀
|
||||
version_in_filename="${latest_tag#v}"
|
||||
file_name_without_v="agent-${OS_TYPE}-${ARCH}-${version_in_filename}"
|
||||
full_file_name_without_v="${file_name_without_v}.${file_ext}"
|
||||
fi
|
||||
|
||||
# 查找匹配的二进制文件(优先尝试带 v 的,如果找不到再尝试不带 v 的)
|
||||
local download_url=""
|
||||
local full_file_name=""
|
||||
|
||||
# 先尝试带 v 的文件名
|
||||
download_url=$(echo "$release_detail" | grep -o "\"browser_download_url\":\"[^\"]*${full_file_name_with_v}[^\"]*\"" | head -1 | cut -d'"' -f4)
|
||||
|
||||
if [ -n "$download_url" ]; then
|
||||
full_file_name="$full_file_name_with_v"
|
||||
echo -e "${BLUE}找到文件: ${full_file_name}${NC}"
|
||||
elif [ -n "$full_file_name_without_v" ]; then
|
||||
# 如果带 v 的找不到,尝试不带 v 的
|
||||
download_url=$(echo "$release_detail" | grep -o "\"browser_download_url\":\"[^\"]*${full_file_name_without_v}[^\"]*\"" | head -1 | cut -d'"' -f4)
|
||||
if [ -n "$download_url" ]; then
|
||||
full_file_name="$full_file_name_without_v"
|
||||
echo -e "${BLUE}找到文件: ${full_file_name} (tag: ${latest_tag})${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$download_url" ] || [ -z "$full_file_name" ]; then
|
||||
echo -e "${YELLOW}⚠ 未找到匹配的二进制文件${NC}"
|
||||
echo -e "${YELLOW} 尝试的文件名:${NC}"
|
||||
echo -e "${YELLOW} - ${full_file_name_with_v}${NC}"
|
||||
if [ -n "$full_file_name_without_v" ]; then
|
||||
echo -e "${YELLOW} - ${full_file_name_without_v}${NC}"
|
||||
fi
|
||||
echo -e "${YELLOW} 将使用源码编译${NC}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user