drpanwe icon

Download Golang

drpanwe | PRO | 01/21/20 07:39:15 PM UTC | 0 ⭐ | 348 👁️ | Never ⏰ | []
Bash |

1.38 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
 
# Current version
currentGoVersion=$(go version | cut -f3 -d ' ')
if [ -z "$currentGoVersion" ]; then # Check if it's empty
    echo "Find current Go version: [FAIL]"
    exit 1
else
    echo "Find current Go version: [OK]"
fi
 
# Find latest version
URL=$(curl -ks https://golang.org/dl/ | grep downloadBox | grep linux-amd64.tar.gz | awk -F 'href="' '{ print $2 }' | cut -f1 -d '"')
if [ -z "$URL" ]; then  # Check if the variable $URL is empty
    echo "Parse latest Go tarball link: [FAIL]"
    exit 1
else
    echo "Parse latest Go tarball link: [OK]"
fi
 
# Check if the local version is the same as the latest one
if echo "$URL" | grep "$currentGoVersion" &> /dev/null; then
    echo "You have the latest version already installed"
    exit 0
fi
 
if wget --output-document=latest-go.tar.gz "$URL" &> /dev/null; then
    echo "Download latest Go: [OK]"
else
    echo "Download latest Go: [FAIL]"
    exit 1
fi
 
# Uninstall the current Go
if sudo rm -rf /usr/local/go &> /dev/null; then
    echo "Uninstall current Go: [OK]"
else
    echo "Uninstall current Go: [FAIL]"
    exit 1
fi
 
# Install
if sudo tar -C /usr/local -xzf latest-go.tar.gz &> /dev/null; then
    echo "Install latest Go: [OK]"
else
    echo "Install latest Go: [FAIL]"
    exit 1
fi
 
# Cleanup
if rm latest-go.tar.gz &> /dev/null; then
    echo "Clean temporary files: [OK]"
else
    echo "Clean temporary files: [FAIL]"
    exit 1
fi

Comments