OO - Go Version Manager
Latest version: 0.0.5
oo
was heavily inspired by tj/n.
Install
-
Clone this repo.
-
Add this to your bashrc or zshrc:
source "/path/to/oo/env"
Note that you need to set GOPATH
manually in your bashrc or zshrc:
export GOPATH=/path/to/your/gopath
export PATH=$PATH:$GOPATH/bin
Examples
Get go1.4 installed:
$ oo get 1.4
Use go1.4 as current go
(or just oo 1.4
):
$ oo use 1.4
=> go1.4
Run go from 1.3 temporary:
$ oo as 1.3 version
go version go1.3 darwin/amd64
$ oo as 1.3 run helloworld.go
Hello world!
List all installed go versions
$ oo ls
Build (or rebuild) go by version:
$ oo build 1.4
build go1.4..
build successfully
Get current go binary path:
$ oo bin
/Users/hit9/github/oo/go/bin/go
Remove a version:
$ oo rm 1.5rc1 1 ↵ (go1.4 [email protected]) ~/github/oo/versions/1.5/src
[email protected] removed
Usage
Usage: oo [COMMAND]
Commands:
oo Output current go version
oo ls Output versions installed
oo <version> Use go <version>
oo use <version> Use go <version>
oo get <version> Get go <version>
oo rm <version> Remove the given version
oo as <version> Run go from oo on a specific version
oo dir [<version>] Show go directory by version
oo bin [<version>] Show go binary path by version
oo build [<version>] Build go by version
oo env Output current go env
oo upgrade Upgrade oo to latest version
Options:
-v, --version Output oo's version
-h, --help Output this help message
Environment Variables:
OO_MIRROR_PATTERN Mirror url pattern to download go source tarball
default: https://codeload.github.com/golang/go/tar.gz/go%s
OO_BUILD_CMD Command to build go from source, default: ./make.bash
OO_BOOTSTRAP_VERSION Bootstrap go version to compile the target version,
default: the latest installed version
Version: 0.0.4
Custom Mirror
$ export OO_MIRROR_PATTERN='https://storage.googleapis.com/golang/go%s.src.tar.gz'
$ oo get 1.4
get https://storage.googleapis.com/golang/go1.4.src.tar.gz..
########## 14.4%
Similar Projects
Troubles
Build golang from source may fail in many different reasons (such as bootstrap failures), please download latest binary archive tarball from golang.org once any trouble occurrs during build, and use that binary to bootstrap your golang source inside oo directory manually, then oo is ready to use again.
cd path/to/oo/versions/x.x.x/src
GOROOT_BOOTSTRAP=path/to/downloaded/go ./all.bash
License
MIT.