120 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 设置错误时立即退出
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 安装Go
install_go() {
log_info "安装Go..."
# 下载最新版本的Go
GO_VERSION=$(curl -s https://golang.org/VERSION?m=text)
GO_URL="https://golang.org/dl/${GO_VERSION}.linux-amd64.tar.gz"
# 下载并解压
curl -L $GO_URL -o /tmp/go.tar.gz
tar -C /usr/local -xzf /tmp/go.tar.gz
rm /tmp/go.tar.gz
# 设置环境变量
cat >> ~/.zshrc << EOF
# Go环境变量
export GOROOT=/usr/local/go
export GOPATH=\$HOME/go
export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin
EOF
# 创建Go工作目录
mkdir -p ~/go/{bin,src,pkg}
log_info "Go安装完成"
}
# 安装常用Go工具
install_go_tools() {
log_info "安装常用Go工具..."
# 安装gopls
go install golang.org/x/tools/gopls@latest
# 安装delve调试器
go install github.com/go-delve/delve/cmd/dlv@latest
# 安装air热重载工具
go install github.com/cosmtrek/air@latest
# 安装mockgen
go install github.com/golang/mock/mockgen@latest
# 安装protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
log_info "Go工具安装完成"
}
# 配置Go
configure_go() {
log_info "配置Go..."
# 设置Go代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
# 配置gopls
cat > ~/.config/gopls/settings.json << EOF
{
"ui.semanticTokens": true,
"formatting.local": "github.com/your-username",
"completion.placeholder": true,
"hover.documentation": true,
"hover.diagnostics": true,
"codeLens.documentLink": true,
"codeLens.references": true,
"codeLens.implementations": true,
"codeLens.typeDefinitions": true,
"codeLens.commands": true
}
EOF
log_info "Go配置完成"
}
# 主函数
main() {
log_info "开始安装Go开发环境..."
# 安装Go
install_go
# 安装常用Go工具
install_go_tools
# 配置Go
configure_go
log_info "Go开发环境安装完成"
log_info "请运行 'source ~/.zshrc' 或重新打开终端以使环境变量生效。"
}
# 执行主函数
main