-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate-go
executable file
·32 lines (24 loc) · 1.01 KB
/
update-go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env sh
# Color variables
grn='\e[1;32m'
blu='\e[1;34m'
reset='\e[0m'
LATEST_GO_VERSION=$(curl -s https://go.dev/dl/\?mode\=json | grep -m 1 version | awk -F ":" '{print $NF}' | tr -d ' ",' | sed s/go//)
CURRENT_GO_VERSION=$(go version | awk '{print $3}' | sed s/go//)
LINUX_GO_INSTALL_PACKAGE="go$LATEST_GO_VERSION.linux-amd64.tar.gz"
URL="https://go.dev/dl/${LINUX_GO_INSTALL_PACKAGE}"
if [ "$LATEST_GO_VERSION" = "$CURRENT_GO_VERSION" ]; then
echo "Your Go version is up to date! 🎉"
exit 0
else
echo "Your current go version is: ${CURRENT_GO_VERSION} while the latest is: ${LATEST_GO_VERSION}. Updating now ✅"
fi
printf "⚡ ${grn}Downloading newest Go version${reset}\n"
wget $URL
printf "⌛ ${grn}Removing previous Go Version${reset}\n"
sudo rm -rf /usr/local/go
printf "📦 ${grn}Unpacking the updated Go Version${reset}\n"
sudo tar -C /usr/local -xzf $LINUX_GO_INSTALL_PACKAGE
printf "✅ ${grn}Cleaning up, almost done!${reset}\n"
rm $LINUX_GO_INSTALL_PACKAGE
printf "🎉 ${blu}Done!${reset}\n"