Post

编译golang,给go get加进度条

参考:https://life.leanote.com/post/%E8%AE%A9-go-get-%E6%98%BE%E7%A4%BA%E8%BF%9B%E5%BA%A6,https://www.jianshu.com/p/4f894d605e1a

蛋疼的网络,不知道go get有没宕,在网上找到一篇加进度条的,然后编译也需要,顺带一起记录下

首先先下载go1.4版本的,鸡生蛋蛋生鸡的问题。。。

1
2
wget https://storage.googleapis.com/golang/go1.4.3.src.tar.gz
tar zxvf go1.4.3.src.tar.gz

记住解压的地址啊,我是放在/opt/go1.4里的

我是brew install go的,所以go的地址是在/usr/local/Cellar/go/1.6.1/libexec/src

修改./cmd/go/vcs.go (新版本在:./cmd/go/internal/get/vcs.go)

1
2
3
4
5
6
7
8
9
// vcsGit describes how to use Git.
var vcsGit = &vcsCmd{
  name: "Git",
  cmd:  "git",

  createCmd:   "clone {repo} {dir}", // 此处修改为 clone --progress {repo} {dir} --depth 1
  downloadCmd: "pull --ff-only"

}

找到run1()方法, 在 cmd.Stderr = &buf 下添加两行, 如:

1
2
3
4
5
6
var buf bytes.Buffer
cmd.Stdout = &buf
cmd.Stderr = &buf
cmd.Stdout = os.Stdout // 重定向标准输出
cmd.Stderr = os.Stderr // 重定向标准输出
err = cmd.Run()

然后需要编译咯

1
GOROOT_BOOTSTRAP=/opt/go1.4 ./all.bash

至此就搞定了

This post is licensed under CC BY 4.0 by the author.