解决语法错误
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
test.log
|
||||||
63
install.sh
63
install.sh
@@ -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,但可能仍有问题
|
||||||
GO_ENV="$GO_PATH_ENV GOPROXY=${GO_PROXY} GOSUMDB=off GOTIMEOUT=60 GONOPROXY= GONOSUMDB= GOPRIVATE=*"
|
# 如果配置了 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=*"
|
||||||
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user