37 lines
1.1 KiB
Bash
37 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# 工具列表(从 go.mod 的 tool 指令中提取)
|
|
TOOLS=(
|
|
"git.apinb.com/bsm-tools/protoc-gen-markdown"
|
|
"git.apinb.com/bsm-tools/protoc-gen-slc"
|
|
"git.apinb.com/bsm-tools/protoc-gen-ts"
|
|
"github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway"
|
|
"github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"
|
|
"github.com/pepabo/protoc-gen-go-client"
|
|
"google.golang.org/grpc/cmd/protoc-gen-go-grpc"
|
|
"google.golang.org/protobuf/cmd/protoc-gen-go"
|
|
)
|
|
|
|
echo "==> 开始安装 protoc 插件..."
|
|
|
|
for tool in "${TOOLS[@]}"; do
|
|
echo "--> 安装 $tool"
|
|
go install "$tool@latest"
|
|
done
|
|
|
|
echo "==> 全部安装完成。"
|
|
|
|
# 检查 GOBIN / GOPATH 是否在 PATH 中
|
|
BIN_DIR="$(go env GOBIN)"
|
|
if [ -z "$BIN_DIR" ]; then
|
|
BIN_DIR="$(go env GOPATH)/bin"
|
|
fi
|
|
|
|
echo
|
|
echo "工具安装目录: $BIN_DIR"
|
|
case ":$PATH:" in
|
|
*":$BIN_DIR:"*) echo "该目录已在 PATH 中,可直接使用。" ;;
|
|
*) echo "提示:请将 $BIN_DIR 添加到 PATH 环境变量中,例如:"
|
|
echo " export PATH=\"\$PATH:$BIN_DIR\"" ;;
|
|
esac |