JunJiang江骏 bio photo

JunJiang江骏

Staff Engineer @ Ant Group. Machine Learning GDE(Google Developer Expert). Focus on machine learning platform and training framework optimization.

Twitter Google+ LinkedIn Instagram Github Weibo

gotool

tags: Golang

Golang 通过 $GOPATH 来决定优先用哪里的源码。而这也就是 workspace。

开发者往往需要多个 workspace。

  • 一个 global 的 workspace
  • 一个自己常用的开发环境的 workspace
  • 还有一个,在调试别人项目的时候,需要载入别人 Godeps 下的 workspace

而切换这些 workspace 都靠 export $GOPATH=xxx:$GOPATH ,这样不够方便,而且容易搞糊涂,不能明显知道自己到底在哪个环境里。另外,go install 后,还依赖 $PATH 中要加入 <workspace>/bin 才能立即使用所安装的程序。

所以,受 Python 里 virtualenv 工具的启发,写了这个工具:gotool

项目地址:https://github.com/ohmystack/gotool

recording

安装

git clone https://github.com/ohmystack/gotool.git
cd gotool
cp gotool /usr/local/bin/gotool

使用

Activate (a)

进到 workspace 所在的目录,执行

source gotool a

完成 $GOPATH$PATH 的设置,而且命令行的开头会显示当前 workspace 的名字。

workspace

它会检查该目录下是否有 src/,只有存在 src 目录,才能被 activate。

它还会检查这个 workspace 是不是在 Godeps/_workspace 下面,如果发现这是某个项目 Godeps 的 workspace,它在命令行开头显示的,将是这个项目的名称。

workspace

自己在哪个环境里,一目了然。

Deactivate (d)

使用后,如果想恢复到使用前的环境。只需要,deactivate 即可。

source gotool d

workspace

其它功能

这个工具现在其实是一个 bash 脚本,主要做上面这两个功能。你如果有什么好的想法,觉得可以再加入什么功能,欢迎 fork 这个项目,并把你的创意提交进来。

希望你喜欢这个工具,让它帮助你在 terminal 开发 Golang 更加方便。


comments powered by Disqus