All Projects → kevincobain2000 → gobrew

kevincobain2000 / gobrew

Licence: MIT license
Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to gobrew

Marlow
golang generator for type-safe sql api constructs
Stars: ✭ 83 (-51.46%)
Mutual labels:  golang-tools
Tinderonline
Find out which of your friends are online on Tinder
Stars: ✭ 155 (-9.36%)
Mutual labels:  golang-tools
go-notebook
Go-Notebook is inspired by Jupyter Project (link) in order to document Golang code.
Stars: ✭ 33 (-80.7%)
Mutual labels:  golang-tools
Go Mygen
Quickly generate CURD and documentation for operating MYSQL.etc
Stars: ✭ 94 (-45.03%)
Mutual labels:  golang-tools
Goreportcard
A report card for your Go application
Stars: ✭ 1,608 (+840.35%)
Mutual labels:  golang-tools
Dupl
a tool for code clone detection
Stars: ✭ 228 (+33.33%)
Mutual labels:  golang-tools
Gogi
Go client for gitignore.io
Stars: ✭ 51 (-70.18%)
Mutual labels:  golang-tools
nestif
Detect deeply nested if statements in Go source code
Stars: ✭ 30 (-82.46%)
Mutual labels:  golang-tools
Gomod
Go modules analysis tool
Stars: ✭ 139 (-18.71%)
Mutual labels:  golang-tools
typogenerator
Golang string typosquatting generator
Stars: ✭ 67 (-60.82%)
Mutual labels:  golang-tools
Vermin
The smart virtual machines manager. A modern CLI for Vagrant Boxes.
Stars: ✭ 110 (-35.67%)
Mutual labels:  golang-tools
Gocmt
Add missing comment on exported function, method, type, constant, variable in go file
Stars: ✭ 111 (-35.09%)
Mutual labels:  golang-tools
Sonar Golang
Sonarqube plugin for the golang language.
Stars: ✭ 229 (+33.92%)
Mutual labels:  golang-tools
Goreuse
Generic Code for Go
Stars: ✭ 93 (-45.61%)
Mutual labels:  golang-tools
universalmutator
Regexp based tool for mutating generic source code across numerous languages
Stars: ✭ 105 (-38.6%)
Mutual labels:  golang-tools
Go Search Extension
The ultimate search extension for Golang
Stars: ✭ 69 (-59.65%)
Mutual labels:  golang-tools
Fpgo
Monad, Functional Programming features for Golang
Stars: ✭ 165 (-3.51%)
Mutual labels:  golang-tools
go-typeconv
Bring implicit type conversion into Go in a explicit way
Stars: ✭ 24 (-85.96%)
Mutual labels:  golang-tools
xxenv-latest
This **env(pyenv, rbenv, nodenv, goenv, phpenv, luaenv) plugin replaces the version specified in the argument with the latest version.
Stars: ✭ 69 (-59.65%)
Mutual labels:  goenv
gogh
GO GitHub project manager
Stars: ✭ 29 (-83.04%)
Mutual labels:  golang-tools

gobrew

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, M2 etc)

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, and Ubuntu).

Flexible: Manage multiple Go versions including beta and rc.

Colorful: Colorful output.

Build Status

Branch Status
master Test
develop Test

Install or update

Using curl

curl -sLk https://git.io/gobrew | sh

or install using go

go install github.com/kevincobain2000/gobrew/cmd/gobrew@latest

Add PATH setting your shell config file (.bashrc or .zshrc).

export PATH="$HOME/.gobrew/current/bin:$HOME/.gobrew/bin:$PATH"
export GOROOT="$HOME/.gobrew/current/go"

Reload config.

All DONE!

Confirm

gobrew help

Usage

Will install and set Go

gobrew use 1.16

Will only install it

gobrew install 1.16
gobrew use 1.16

Uninstall a version

gobrew uninstall 1.16

List installed versions

╰─$ gobrew ls
1.15.1
1.16
1.16.3
1.17
1.17.1
1.17.2
1.17.3
1.17.4
1.17.5
1.17.6
1.17.7
1.17.8
1.18
1.18.1*
1.18beta1
1.18rc1

current: 1.18.1

List available versions

╰─$ gobrew ls-remote
[Info]: Fetching remote versions
1	1.0.1  1.0.2  1.0.3

1.1	1.1.0  1.1.1  1.1.2  1.1rc2  1.1rc3

1.2	1.2.0  1.2.1  1.2.2  1.2rc2  1.2rc3  1.2rc4
	1.2rc5

1.3	1.3.0  1.3.1  1.3.2  1.3.3  1.3beta1  1.3beta2
	1.3rc1  1.3rc2

1.4	1.4.0  1.4.1  1.4.2  1.4.3  1.4beta1  1.4rc1
	1.4rc2

1.5	1.5.0  1.5.1  1.5.2  1.5.3  1.5.4  1.5beta1
	1.5beta2  1.5beta3  1.5rc1

1.6	1.6.0  1.6.1  1.6.2  1.6.3  1.6.4  1.6beta1
	1.6beta2  1.6rc1  1.6rc2

1.7	1.7.0  1.7.1  1.7.2  1.7.3  1.7.4
	1.7.5  1.7.6  1.7beta1  1.7beta2  1.7rc1  1.7rc2  1.7rc3
	1.7rc4  1.7rc5  1.7rc6

1.8	1.8.0  1.8.1  1.8.2  1.8.3  1.8.4
	1.8.5  1.8.6  1.8.7  1.8.5rc4  1.8.5rc5  1.8beta1  1.8beta2
	1.8rc1  1.8rc2  1.8rc3

1.9	1.9.0  1.9.1  1.9.2  1.9.3  1.9.4
	1.9.5  1.9.6  1.9.7  1.9beta1  1.9beta2  1.9rc1  1.9rc2


1.10	1.10.0  1.10.1  1.10.2  1.10.3  1.10.4
	1.10.5  1.10.6  1.10.7  1.10.8  1.10beta1  1.10beta2  1.10rc1
	1.10rc2

1.11	1.11.0  1.11.1  1.11.2  1.11.3  1.11.4
	1.11.5  1.11.6  1.11.7  1.11.8  1.11.9  1.11.10
	1.11.11  1.11.12  1.11.13  1.11beta1  1.11beta2  1.11beta3  1.11rc1
	1.11rc2

1.12	1.12.0  1.12.1  1.12.2  1.12.3  1.12.4
	1.12.5  1.12.6  1.12.7  1.12.8  1.12.9  1.12.10
	1.12.11  1.12.12  1.12.13  1.12.14  1.12.15  1.12.16
	1.12.17  1.12beta1  1.12beta2  1.12rc1

1.13	1.13.0  1.13.1  1.13.2  1.13.3  1.13.4
	1.13.5  1.13.6  1.13.7  1.13.8  1.13.9  1.13.10
	1.13.11  1.13.12  1.13.13  1.13.14  1.13.15  1.13beta1  1.13rc1
	1.13rc2

1.14	1.14.0  1.14.1  1.14.2  1.14.3  1.14.4
	1.14.5  1.14.6  1.14.7  1.14.8  1.14.9  1.14.10
	1.14.11  1.14.12  1.14.13  1.14.14  1.14.15  1.14beta1  1.14rc1


1.15	1.15.0  1.15.1  1.15.2  1.15.3  1.15.4
	1.15.5  1.15.6  1.15.7  1.15.8  1.15.9  1.15.10
	1.15.11  1.15.12  1.15.13  1.15.14  1.15.15  1.15beta1  1.15rc1
	1.15rc2

1.16	1.16.0  1.16.1  1.16.2  1.16.3  1.16.4
	1.16.5  1.16.6  1.16.7  1.16.8  1.16.9  1.16.10
	1.16.11  1.16.12  1.16.13  1.16.14  1.16.15  1.16beta1  1.16rc1


1.17	1.17.0  1.17.1  1.17.2  1.17.3  1.17.4
	1.17.5  1.17.6  1.17.7  1.17.8  1.17.9  1.17.10
	1.17.11  1.17.12  1.17beta1  1.17rc1  1.17rc2

1.18	1.18.0  1.18.1  1.18.2  1.18.3  1.18.4  1.18beta1
	1.18beta2  1.18rc1

1.19	1.19beta1  1.19rc1  1.19rc2

All commands

╰─$ gobrew help

gobrew 1.6.3

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 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 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 GOROOT="$HOME/.gobrew/current/go"

Uninstall gobrew

rm -rf $HOME/.gobrew

Use it in Github Actions

For more details: https://github.com/kevincobain2000/action-gobrew

on: [push]
name: CI
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.13, 1.14, 1.15, 1.16.7, 1.17, 1.18, 1.18@latest, 1.19beta1, 1.19@dev-latest, latest, dev-latest]
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - uses: kevincobain2000/action-gobrew@v1
        with:
          version: ${{ matrix.go-version }}

      - name: Go
        run: go version

Limitations

  • Windows OS is not supported

Change Log

  • v1.2.0 - Added rc|beta versions, appended at the end of list
  • v1.4.1 - Go mod updated to 1.17
  • v1.5.0 - Mac M1 support
  • v1.5.1 - Oops
  • v1.5.5 - arm|M1|darwin support added
  • v1.5.6 - README updated
  • v1.5.7 - Exit code fixed
  • v1.5.8 - Show download progress and use Go's compression instead of tar command
  • v1.5.9 - oops
  • v1.6.0 - Added support for @latest and @dev-latest and progress bar for download
  • v1.6.1 - Bug on use
  • 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.6.9 - Fixes #52, download error on status != 200
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].