解决语法错误

This commit is contained in:
2025-12-03 19:28:41 +08:00
parent 2b3067fdcc
commit 87a5bfa2c8
3 changed files with 48 additions and 16 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
test.log

View File

@@ -768,9 +768,25 @@ build_from_source() {
export http_proxy="${GITHUB_PROXY}/" export http_proxy="${GITHUB_PROXY}/"
export https_proxy="${GITHUB_PROXY}/" export https_proxy="${GITHUB_PROXY}/"
# 配置 Git 重写 golang.org 和 google.golang.org 的 URL通过 GitHub 代理)
# golang.org/x/* 包在 GitHub 上的镜像路径是 github.com/golang/x-*
# 例如golang.org/x/net -> github.com/golang/net
sudo git config --global url."${GITHUB_PROXY}/https://github.com/golang/".insteadOf "https://golang.org/x/" 2>/dev/null || true
git config --global url."${GITHUB_PROXY}/https://github.com/golang/".insteadOf "https://golang.org/x/" 2>/dev/null || true
# google.golang.org 也可以通过 GitHub 代理
# 例如google.golang.org/protobuf -> github.com/protocolbuffers/protobuf-go
sudo git config --global url."${GITHUB_PROXY}/https://github.com/protocolbuffers/".insteadOf "https://google.golang.org/protobuf" 2>/dev/null || true
git config --global url."${GITHUB_PROXY}/https://github.com/protocolbuffers/".insteadOf "https://google.golang.org/protobuf" 2>/dev/null || true
# 设置环境变量,让 Go 通过代理访问这些域名
# 注意:这需要 Go 支持 HTTP_PROXY我们已经设置了
# 添加到 Go 环境变量中 # 添加到 Go 环境变量中
GO_ENV="$GO_ENV HTTP_PROXY=${GITHUB_PROXY}/ HTTPS_PROXY=${GITHUB_PROXY}/ http_proxy=${GITHUB_PROXY}/ https_proxy=${GITHUB_PROXY}/" GO_ENV="$GO_ENV HTTP_PROXY=${GITHUB_PROXY}/ HTTPS_PROXY=${GITHUB_PROXY}/ http_proxy=${GITHUB_PROXY}/ https_proxy=${GITHUB_PROXY}/"
echo -e "${BLUE}已配置 golang.org 和 google.golang.org 通过 GitHub 代理访问${NC}"
echo -e "${BLUE}已配置 Git 和 Go 使用 GitHub 代理加速${NC}" echo -e "${BLUE}已配置 Git 和 Go 使用 GitHub 代理加速${NC}"
else else
echo -e "${YELLOW}⚠ 未找到可用的 GitHub 代理,将直接访问 GitHub${NC}" echo -e "${YELLOW}⚠ 未找到可用的 GitHub 代理,将直接访问 GitHub${NC}"
@@ -825,7 +841,12 @@ build_from_source() {
# 禁用 GOSUMDB 以避免连接 proxy.golang.org在中国大陆通常无法访问 # 禁用 GOSUMDB 以避免连接 proxy.golang.org在中国大陆通常无法访问
# 如果必须启用校验和,可以使用 GOSUMDB=sum.golang.google.cn但可能仍有问题 # 如果必须启用校验和,可以使用 GOSUMDB=sum.golang.google.cn但可能仍有问题
# 如果配置了 GitHub 代理,添加到环境变量中
if [ -n "$GITHUB_PROXY" ]; then
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=60 GONOPROXY= GONOSUMDB= GOPRIVATE=* HTTP_PROXY=${GITHUB_PROXY}/ HTTPS_PROXY=${GITHUB_PROXY}/ http_proxy=${GITHUB_PROXY}/ https_proxy=${GITHUB_PROXY}/"
else
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=60 GONOPROXY= GONOSUMDB= GOPRIVATE=*" GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=60 GONOPROXY= GONOSUMDB= GOPRIVATE=*"
fi
# 使用 go env -w 永久设置环境变量(避免被其他配置覆盖) # 使用 go env -w 永久设置环境变量(避免被其他配置覆盖)
echo -e "${BLUE}永久设置 Go 环境变量(避免连接 proxy.golang.org...${NC}" echo -e "${BLUE}永久设置 Go 环境变量(避免连接 proxy.golang.org...${NC}"
@@ -965,9 +986,13 @@ build_from_source() {
DOWNLOAD_END_TIME=$(date +%s) DOWNLOAD_END_TIME=$(date +%s)
DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME)) DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME))
# 统计下载信息(从输出中统计) # 统计下载信息(从输出中统计,去除换行符
TOTAL_PACKAGES=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null || echo "0") TOTAL_PACKAGES=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
SUCCESS_COUNT=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null || echo "0") SUCCESS_COUNT=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
# 确保是数字
TOTAL_PACKAGES=${TOTAL_PACKAGES:-0}
SUCCESS_COUNT=${SUCCESS_COUNT:-0}
echo "" echo ""
echo -e "${GREEN}✓ 依赖下载完成${NC}" echo -e "${GREEN}✓ 依赖下载完成${NC}"
@@ -976,7 +1001,7 @@ build_from_source() {
echo -e " 成功下载: ${GREEN}${SUCCESS_COUNT}${NC}" echo -e " 成功下载: ${GREEN}${SUCCESS_COUNT}${NC}"
echo -e " 总耗时: ${GREEN}${DOWNLOAD_DURATION}${NC}" echo -e " 总耗时: ${GREEN}${DOWNLOAD_DURATION}${NC}"
if [ "$DOWNLOAD_DURATION" -gt 0 ] && [ "$SUCCESS_COUNT" -gt 0 ]; then if [ "$DOWNLOAD_DURATION" -gt 0 ] && [ "$SUCCESS_COUNT" -gt 0 ] 2>/dev/null; then
AVG_SPEED=$(echo "scale=2; $SUCCESS_COUNT / $DOWNLOAD_DURATION" | bc 2>/dev/null || echo "0") AVG_SPEED=$(echo "scale=2; $SUCCESS_COUNT / $DOWNLOAD_DURATION" | bc 2>/dev/null || echo "0")
echo -e " 平均速度: ${GREEN}${AVG_SPEED}${NC} 包/秒" echo -e " 平均速度: ${GREEN}${AVG_SPEED}${NC} 包/秒"
fi fi
@@ -1000,8 +1025,9 @@ build_from_source() {
DOWNLOAD_END_TIME=$(date +%s) DOWNLOAD_END_TIME=$(date +%s)
DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME)) DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME))
# 统计已下载的包 # 统计已下载的包(去除换行符)
DOWNLOADED_COUNT=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null || echo "0") DOWNLOADED_COUNT=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
DOWNLOADED_COUNT=${DOWNLOADED_COUNT:-0}
if [ "$DOWNLOAD_EXIT_CODE" = "124" ]; then if [ "$DOWNLOAD_EXIT_CODE" = "124" ]; then
echo "" echo ""
@@ -1116,18 +1142,23 @@ build_from_source() {
kill "$PROGRESS_PID2" 2>/dev/null || true kill "$PROGRESS_PID2" 2>/dev/null || true
wait "$PROGRESS_PID2" 2>/dev/null || true wait "$PROGRESS_PID2" 2>/dev/null || true
rm -f "$PIPE_FILE" 2>/dev/null || true rm -f "$PIPE_FILE" 2>/dev/null || true
# 停止进度显示进程
touch "$DOWNLOAD_PROGRESS_LOG.done2"
sleep 1
kill "$PROGRESS_PID2" 2>/dev/null || true
wait "$PROGRESS_PID2" 2>/dev/null || true
DOWNLOAD_END_TIME=$(date +%s) DOWNLOAD_END_TIME=$(date +%s)
DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME)) DOWNLOAD_DURATION=$((DOWNLOAD_END_TIME - DOWNLOAD_START_TIME))
# 统计下载信息 # 统计下载信息(去除换行符)
TOTAL_PACKAGES=$(grep -c '"Path":' "$DOWNLOAD_LOG" 2>/dev/null || echo "0") TOTAL_PACKAGES=$(grep -c '"Path":' "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
SUCCESS_COUNT=$(grep -c '"Version":' "$DOWNLOAD_LOG" 2>/dev/null || echo "0") SUCCESS_COUNT=$(grep -c '"Version":' "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
# 如果没有 JSON 格式,尝试从普通输出统计
if [ "$TOTAL_PACKAGES" = "0" ] || [ -z "$TOTAL_PACKAGES" ]; then
TOTAL_PACKAGES=$(grep -c "go: downloading" "$DOWNLOAD_LOG" 2>/dev/null | tr -d '\n' || echo "0")
SUCCESS_COUNT=$TOTAL_PACKAGES
fi
# 确保是数字
TOTAL_PACKAGES=${TOTAL_PACKAGES:-0}
SUCCESS_COUNT=${SUCCESS_COUNT:-0}
echo "" echo ""
echo -e "${GREEN}✓ 依赖下载完成${NC}" echo -e "${GREEN}✓ 依赖下载完成${NC}"
@@ -1136,7 +1167,7 @@ build_from_source() {
echo -e " 成功下载: ${GREEN}${SUCCESS_COUNT}${NC}" echo -e " 成功下载: ${GREEN}${SUCCESS_COUNT}${NC}"
echo -e " 总耗时: ${GREEN}${DOWNLOAD_DURATION}${NC}" echo -e " 总耗时: ${GREEN}${DOWNLOAD_DURATION}${NC}"
if [ "$DOWNLOAD_DURATION" -gt 0 ] && [ "$SUCCESS_COUNT" -gt 0 ]; then if [ "$DOWNLOAD_DURATION" -gt 0 ] && [ "$SUCCESS_COUNT" -gt 0 ] 2>/dev/null; then
AVG_SPEED=$(echo "scale=2; $SUCCESS_COUNT / $DOWNLOAD_DURATION" | bc 2>/dev/null || echo "0") AVG_SPEED=$(echo "scale=2; $SUCCESS_COUNT / $DOWNLOAD_DURATION" | bc 2>/dev/null || echo "0")
echo -e " 平均速度: ${GREEN}${AVG_SPEED}${NC} 包/秒" echo -e " 平均速度: ${GREEN}${AVG_SPEED}${NC} 包/秒"
fi fi