mirror of https://github.com/k3s-io/k3s
Merge pull request #756 from joakimr-axis/joakimr-axis_wget
install.sh: Add wget fallback if curl isn't availablepull/822/head
commit
ad7b2e0a5d
52
install.sh
52
install.sh
|
@ -67,6 +67,7 @@ set -e
|
|||
# if not specified.
|
||||
|
||||
GITHUB_URL=https://github.com/rancher/k3s/releases
|
||||
DOWNLOADER=
|
||||
|
||||
# --- helper functions for logs ---
|
||||
info()
|
||||
|
@ -260,11 +261,14 @@ setup_verify_arch() {
|
|||
esac
|
||||
}
|
||||
|
||||
# --- fatal if no curl ---
|
||||
verify_curl() {
|
||||
if [ -z $(which curl || true) ]; then
|
||||
fatal "Can not find curl for downloading files"
|
||||
fi
|
||||
# --- verify existence of network downloader executable ---
|
||||
verify_downloader() {
|
||||
# Return failure if it doesn't exist or is no executable
|
||||
[ -x "$(which $1)" ] || return 1
|
||||
|
||||
# Set verified executable as our downloader program and return success
|
||||
DOWNLOADER=$1
|
||||
return 0
|
||||
}
|
||||
|
||||
# --- create tempory directory and cleanup when done ---
|
||||
|
@ -288,16 +292,46 @@ get_release_version() {
|
|||
VERSION_K3S="${INSTALL_K3S_VERSION}"
|
||||
else
|
||||
info "Finding latest release"
|
||||
VERSION_K3S=$(curl -w "%{url_effective}" -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
|
||||
case $DOWNLOADER in
|
||||
curl)
|
||||
VERSION_K3S=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
|
||||
;;
|
||||
wget)
|
||||
VERSION_K3S=$(wget -SqO /dev/null ${GITHUB_URL}/latest 2>&1 | grep Location | sed -e 's|.*/||')
|
||||
;;
|
||||
*)
|
||||
fatal "Incorrect downloader executable '$DOWNLOADER'"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
info "Using ${VERSION_K3S} as release"
|
||||
}
|
||||
|
||||
# --- download from github url ---
|
||||
download() {
|
||||
[ $# -eq 2 ] || fatal 'download needs exactly 2 arguments'
|
||||
|
||||
case $DOWNLOADER in
|
||||
curl)
|
||||
curl -o $1 -sfL $2
|
||||
;;
|
||||
wget)
|
||||
wget -qO $1 $2
|
||||
;;
|
||||
*)
|
||||
fatal "Incorrect executable '$DOWNLOADER'"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Abort if download command failed
|
||||
[ $? -eq 0 ] || fatal 'Download failed'
|
||||
}
|
||||
|
||||
# --- download hash from github url ---
|
||||
download_hash() {
|
||||
HASH_URL=${GITHUB_URL}/download/${VERSION_K3S}/sha256sum-${ARCH}.txt
|
||||
info "Downloading hash ${HASH_URL}"
|
||||
curl -o ${TMP_HASH} -sfL ${HASH_URL} || fatal "Hash download failed"
|
||||
download ${TMP_HASH} ${HASH_URL}
|
||||
HASH_EXPECTED=$(grep " k3s${SUFFIX}$" ${TMP_HASH} | awk '{print $1}')
|
||||
}
|
||||
|
||||
|
@ -316,7 +350,7 @@ installed_hash_matches() {
|
|||
download_binary() {
|
||||
BIN_URL=${GITHUB_URL}/download/${VERSION_K3S}/k3s${SUFFIX}
|
||||
info "Downloading binary ${BIN_URL}"
|
||||
curl -o ${TMP_BIN} -sfL ${BIN_URL} || fatal "Binary download failed"
|
||||
download ${TMP_BIN} ${BIN_URL}
|
||||
}
|
||||
|
||||
# --- verify downloaded binary hash ---
|
||||
|
@ -359,7 +393,7 @@ download_and_verify() {
|
|||
fi
|
||||
|
||||
setup_verify_arch
|
||||
verify_curl
|
||||
verify_downloader curl || verify_downloader wget || fatal 'Can not find curl or wget for downloading files'
|
||||
setup_tmp
|
||||
get_release_version
|
||||
download_hash
|
||||
|
|
Loading…
Reference in New Issue