2016-02-29 15:35:45 +08:00
|
|
|
#!/usr/bin/env bash
|
2018-01-22 23:43:32 +08:00
|
|
|
set -eu
|
|
|
|
[ "${BASH_VERSINFO[0]}" -ge 3 ] && set -o pipefail
|
|
|
|
|
|
|
|
get_platform () {
|
|
|
|
local platform="$(uname | tr '[:upper:]' '[:lower:]')"
|
|
|
|
|
|
|
|
case "$platform" in
|
|
|
|
linux|darwin|freebsd)
|
|
|
|
echo "Platform '${platform}' supported!" >&2
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Platform '${platform}' not supported!" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
echo -n $platform
|
|
|
|
}
|
|
|
|
|
|
|
|
get_arch () {
|
|
|
|
local arch=""
|
|
|
|
|
|
|
|
case "$(uname -m)" in
|
|
|
|
x86_64|amd64) arch="amd64"; ;;
|
2018-01-23 00:00:40 +08:00
|
|
|
i686|i386) arch="386"; ;;
|
|
|
|
armv6l|armv7l) arch="armv6l"; ;;
|
|
|
|
*)
|
|
|
|
echo "Arch '$(uname -m)' not supported!" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
2018-01-22 23:43:32 +08:00
|
|
|
esac
|
|
|
|
|
|
|
|
echo -n $arch
|
|
|
|
}
|
|
|
|
|
|
|
|
my_mktemp () {
|
|
|
|
local tempdir=""
|
|
|
|
if [ "linux" = "$1" ] ; then
|
|
|
|
tempdir=$(mktemp -d asdf-golang.XXXX)
|
|
|
|
else
|
|
|
|
tempdir=$(mktemp -dt asdf-golang)
|
|
|
|
fi
|
|
|
|
echo -n $tempdir
|
|
|
|
}
|
2016-02-29 15:35:45 +08:00
|
|
|
|
|
|
|
install_golang () {
|
|
|
|
local install_type=$1
|
|
|
|
local version=$2
|
|
|
|
local install_path=$3
|
2018-01-22 23:43:32 +08:00
|
|
|
local platform=$(get_platform)
|
|
|
|
local arch=$(get_arch)
|
|
|
|
local tempdir=$(my_mktemp $platform)
|
2016-02-29 15:35:45 +08:00
|
|
|
|
|
|
|
curl "https://storage.googleapis.com/golang/go${version}.${platform}-${arch}.tar.gz" -o "${tempdir}/archive.tar.gz"
|
|
|
|
|
|
|
|
tar -C "$install_path" -xzf "${tempdir}/archive.tar.gz"
|
|
|
|
|
|
|
|
rm -rf "${tempdir}"
|
|
|
|
}
|
|
|
|
|
|
|
|
install_golang $ASDF_INSTALL_TYPE $ASDF_INSTALL_VERSION $ASDF_INSTALL_PATH
|