Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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
Add Comment
Please, Sign In to add comment