Last active 1733575971

gv.sh Raw
1#!/bin/sh
2
3if [ ! -f $HOME/go/bin/go$1 ]; then
4 echo "Version $1 not found, trying to install"
5 go install golang.org/dl/go$1\@latest
6 go$1 download
7fi
8rm $HOME/go/bin/go || true
9echo "Linking go to version $1"
10ln -s $HOME/go/bin/go$1 $HOME/go/bin/go
readme.md Raw

Usage:

Just run gv with version tag:

~ gv 1.17.5

Script will check if specified version not installed - gv will download it.

Next creates symlink to new version.

❯ gv 1.17.6                                                                                                           ~
Version 1.17.6 not found, trying to install
go: downloading golang.org/dl v0.0.0-20220106205509-1eec60721618
Downloaded   0.0% (    16384 / 136792188 bytes) ...
Downloaded   4.6% (  6356944 / 136792188 bytes) ...
Downloaded   9.5% ( 13057952 / 136792188 bytes) ...
Downloaded  15.9% ( 21692256 / 136792188 bytes) ...
Downloaded  23.6% ( 32292624 / 136792188 bytes) ...
Downloaded  30.4% ( 41549520 / 136792188 bytes) ...
Downloaded  35.9% ( 49086096 / 136792188 bytes) ...
Downloaded  42.6% ( 58277456 / 136792188 bytes) ...
Downloaded  49.4% ( 67599872 / 136792188 bytes) ...
Downloaded  55.8% ( 76381632 / 136792188 bytes) ...
Downloaded  62.7% ( 85785984 / 136792188 bytes) ...
Downloaded  69.0% ( 94453040 / 136792188 bytes) ...
Downloaded  75.8% (103693552 / 136792188 bytes) ...
Downloaded  83.3% (114015392 / 136792188 bytes) ...
Downloaded  90.7% (124025936 / 136792188 bytes) ...
Downloaded  98.3% (134495232 / 136792188 bytes) ...
Downloaded 100.0% (136792188 / 136792188 bytes)
Unpacking /Users/neonxp/sdk/go1.17.6/go1.17.6.darwin-amd64.tar.gz ...
Success. You may now run 'go1.17.6'
Linking go to version 1.17.6
❯ go version                                                                                                          ~
go version go1.17.6 darwin/amd64

Thats all!