shell脚本批量编译golang.org/x/tools golang工具

“流式”操作,客官请看:

➜  buildTmpTool pwd
/Users/likewendy/Documents/GO/src/buildTmpTool
➜  buildTmpTool ls
CONTRIBUTING.md autoBuild.sh    codereview.cfg  go              gopls           playground
LICENSE         benchmark       container       go.mod          imports         present
PATENTS         blog            copyright       go.sum          internal        refactor
README.md       cmd             cover           godoc           newDir          txtar
➜  buildTmpTool find . -name main.go | grep -v test #排除testdata那种文件夹
./cmd/present/main.go
./cmd/fiximports/main.go
./cmd/gorename/main.go
./cmd/guru/main.go
./cmd/toolstash/main.go
./cmd/compilebench/main.go
./cmd/ssadump/main.go
./cmd/godoc/main.go
./cmd/bundle/main.go
./cmd/gomvpkg/main.go
./cmd/present2md/main.go
./cmd/file2fuzz/main.go
./cmd/callgraph/main.go
./cmd/getgo/server/main.go
./cmd/getgo/main.go
./go/gcexportdata/main.go
./go/analysis/unitchecker/main.go
./go/analysis/passes/ifaceassert/cmd/ifaceassert/main.go
./go/analysis/passes/findcall/cmd/findcall/main.go
./go/analysis/passes/shadow/cmd/shadow/main.go
./go/analysis/passes/lostcancel/cmd/lostcancel/main.go
./go/analysis/passes/unmarshal/cmd/unmarshal/main.go
./go/analysis/passes/stringintconv/cmd/stringintconv/main.go
./go/analysis/passes/nilness/cmd/nilness/main.go
./go/analysis/passes/fieldalignment/cmd/fieldalignment/main.go
./go/packages/gopackages/main.go
./gopls/internal/lsp/protocol/generate/main.go
./gopls/main.go
➜  buildTmpTool touch autoBuild.sh
➜  buildTmpTool vim autoBuild.sh
#!/bin/bash

workDir=$(pwd)

mkdir newDir

path=(
"./cmd/present" 
"./cmd/fiximports"
"./cmd/gorename"
"./cmd/guru"
"./cmd/toolstash"
"./cmd/compilebench"
"./cmd/ssadump"
"./cmd/godoc"
"./cmd/bundle"
"./cmd/gomvpkg"
"./cmd/present2md"
"./cmd/file2fuzz"
"./cmd/callgraph"
"./cmd/getgo/server"
"./cmd/getgo"
"./gopls"
)

for i in ${path[@]}
do
    cd $i
    go build -o $(basename $(pwd))
    cp $(basename $(pwd)) $workDir/newDir
    cd $workDir
done

ls $workDir/newDir
➜  buildTmpTool ./autoBuild.sh  
bundle		fiximports	gopls		present2md
callgraph	getgo		gorename	server
compilebench	godoc		guru		ssadump
file2fuzz	gomvpkg		present		toolstash
➜  buildTmpTool echo "大功告成"
大功告成
➜  buildTmpTool 

猜你喜欢

转载自blog.csdn.net/Deng_Xian_Sheng/article/details/130139812
今日推荐