get go by minor
This commit is contained in:
35
zsh/mygvm
35
zsh/mygvm
@@ -6,7 +6,7 @@ list_versions() {
|
||||
}
|
||||
|
||||
install_version() {
|
||||
check_valid $1
|
||||
check_valid_patch $1
|
||||
if [[ $valid != 'true' ]]; then
|
||||
echo "invalid version $1"
|
||||
echo "using $(go version)"
|
||||
@@ -31,7 +31,13 @@ link_version() {
|
||||
fi
|
||||
}
|
||||
|
||||
check_valid() {
|
||||
check_valid_minor() {
|
||||
if [[ $1 =~ go1\.[0-9]{1,2} ]]; then
|
||||
valid='true'
|
||||
fi
|
||||
}
|
||||
|
||||
check_valid_patch() {
|
||||
if [[ $1 =~ go1\.[0-9]{1,2}\.[0-9]{1,2} ]]; then
|
||||
valid='true'
|
||||
fi
|
||||
@@ -57,10 +63,20 @@ remove_version() {
|
||||
fi
|
||||
}
|
||||
|
||||
get_latest_patch_for_minor() {
|
||||
version=$(curl -s "https://go.dev/dl/?mode=json" | grep -o "$1.*.linux-amd64.tar.gz" | head -n 1 | tr -d '\r\n' | sed 's/[.]linux-amd64[.]tar[.]gz//')
|
||||
if [[ $version == '' ]]; then
|
||||
echo "could not determine latest version for $1. Only n-1 are supported by this feature."
|
||||
exit 1
|
||||
else
|
||||
echo "latest $1 patch: $version"
|
||||
fi
|
||||
}
|
||||
|
||||
prompt_install() {
|
||||
echo "$1 not found in $HOME/.go"
|
||||
list_versions
|
||||
check_valid $1
|
||||
check_valid_patch $1
|
||||
|
||||
if [[ $valid == 'true' ]]; then
|
||||
echo "attempt to download and install? [y/n]"
|
||||
@@ -68,11 +84,22 @@ prompt_install() {
|
||||
if [[ $input == 'y' ]]; then
|
||||
install_version $1
|
||||
fi
|
||||
else
|
||||
check_valid_minor $1
|
||||
if [[ $valid == 'true' ]]; then
|
||||
get_latest_patch_for_minor $1
|
||||
check_exists $version
|
||||
if [[ $exists == 'true' ]]; then
|
||||
link_version $version
|
||||
else
|
||||
prompt_install $version
|
||||
fi
|
||||
else
|
||||
echo "invalid version $1"
|
||||
echo "using $(go version)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p "$HOME/.go/downloads"
|
||||
@@ -89,6 +116,8 @@ fi
|
||||
valid='false'
|
||||
exists='false'
|
||||
|
||||
version=''
|
||||
|
||||
check_exists $1
|
||||
if [[ $1 == '' ]]; then
|
||||
list_versions
|
||||
|
||||
Reference in New Issue
Block a user