Go version manager, written in Go
  Update and switch Go versions easily
  Install Go on Linux or Mac (intel) or Mac with Apple chip (M1 to M4) or Windows
Quick Setup: One command to install Go and manage versions.
Hassle Free: Doesn't require root or sudo, or shell re-hash.
Platform: Supports (arm64, arch64, Mac, Mac M1, Ubuntu and Windows).
Flexible: Manage multiple Go versions including beta and rc.
Colorful: Colorful output.
Using curl (mac, linux) - recommended
curl -sL https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | bashUsing powershell (windows)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.ps1'))
Using go
go install github.com/kevincobain2000/gobrew/cmd/gobrew@latestNow add PATH setting your shell config file (.bashrc or .zshrc).
export PATH="$HOME/.gobrew/current/bin:$HOME/.gobrew/bin:$PATH"All DONE!
Execute gobrew command from any dir.
gobrewSimply use command gobrew from any dir. It will auto detect if Go version is set, or not latest, or not same as go.mod file.
Smart command
gobrewSpecific commands
Will install and set Go
gobrew use 1.16Will automatically install and set Go
gobrew use mod #from go.mod
gobrew use latest #latest stable
gobrew use dev-latest #latest of latest including rc|betaWill only install it
gobrew install 1.16
gobrew use 1.16Uninstall a version
gobrew uninstall 1.16List installed versions gobrew ls
List available versions gobrew ls-remote
╰─$ gobrew help
gobrew 1.10.7
Usage:
    gobrew use <version>           Install and set <version>
    gobrew ls                      Alias for list
    gobrew ls-remote               List remote versions (including rc|beta versions)
    gobrew install <version>       Only install <version> (binary from official or GOBREW_REGISTRY env)
    gobrew uninstall <version>     Uninstall <version>
    gobrew list                    List installed versions
    gobrew self-update             Self update this tool
    gobrew prune                   Uninstall all go versions except current version
    gobrew version                 Show gobrew version
    gobrew help                    Show this message
Examples:
    gobrew use 1.16                # use go version 1.16
    gobrew use 1.16.1              # use go version 1.16.1
    gobrew use 1.16rc1             # use go version 1.16rc1
    gobrew use 1.16@latest         # use go version latest of 1.16
    gobrew use 1.16@dev-latest     # use go version latest of 1.16, including rc and beta
                                   # Note: rc and beta become no longer latest upon major release
    gobrew use mod                 # use go version listed in the go.mod file
    gobrew use latest              # use go version latest available
    gobrew use dev-latest          # use go version latest avalable, including rc and beta
Installation Path:
# Add gobrew to your ~/.bashrc or ~/.zshrc
export PATH="$HOME/.gobrew/current/bin:$HOME/.gobrew/bin:$PATH"
export GOPATH="$HOME/.gobrew/current/go"rm -rf $HOME/.gobrewFor more details: https://github.com/kevincobain2000/action-gobrew
on: [push]
name: CI
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.13, 1.18, 1.18@latest, 1.19beta1, 1.19@dev-latest, latest, dev-latest, mod]
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - uses: kevincobain2000/action-gobrew@v2
        with:
          version: ${{ matrix.go-version }}
      - name: Go
        run: go versioncurl https://raw.githubusercontent.com/kevincobain2000/gobrew/master/completions/bash/gobrew-completion > /usr/local/etc/bash_completion.d/gobrew
# or
curl https://raw.githubusercontent.com/kevincobain2000/gobrew/master/completions/bash/gobrew-completion >> ~/.zshrc
# or
curl https://raw.githubusercontent.com/kevincobain2000/gobrew/master/completions/bash/gobrew-completion >> ~/.bashrcBy default, gobrew is installed in $HOME as $HOME/.gobrew.
You can change this by setting the GOBREW_ROOT environment variable.
# optionally set
echo "export GOBREW_ROOT=/usr/local/share" >> ~/.bashrc
# optionally set
echo "export GOBREW_ROOT=/usr/local/share" >> ~/.zshrc
#then
curl -sLk https://raw.githubusercontent.com/kevincobain2000/gobrew/master/git.io.sh | shSet GOPATH in your shell config file (.bashrc or .zshrc).
# optionally set
export GOPATH="$HOME/.gobrew/current/go"- v1.2.0 - Added rc|beta versions, appended at the end of list
- v1.5.0 - Mac M1 support
- v1.5.5 - arm|M1|darwin support added
- v1.5.8 - Show download progress and use Go's compression instead of tar command
- v1.6.0 - Added support for @latest and @dev-latest and progress bar for download
- v1.6.2 - Using goreleaser #35 by @juev
- v1.6.3 - Added latest and dev-latest
- v1.6.4 - Github action publish
- v1.6.7 - Fixes rate limit issue
- v1.7.4 - Added 2 new options gobrew versionandgobrew prune
- v1.7.5 - Fixes strange output on gobrew use latest
- v1.7.8 - Windows support, self-update fixes
- v1.7.9 - Windows fix ups and bash-completions
- v1.8.0 - Windows support, including actions
- v1.8.4 - Light background terminal support
- v1.8.6 - Fixes where 1.20.0 was detected as 1.20
- v1.9.0 - v1.8.6 ~ v1.9.0, updates colors packages, fixes UT issues for Github status codes
- v1.9.4 - gobrewinteractive
- v1.9.8 - bug fix where 1.21 is not detected as 1.21.0
- v1.10.10 - ls-remoteis blazing fast, cached.
- v1.10.11 - Optional options for cache and ttl.
- v1.10.12 - Icons on gobrewand install command.
go run ./cmd/gobrew -h
golangci-lint run ./...
go test -v ./... 
   
   
  