Fix 212 Fallback to wget if zsync not available (#214)

* first shot at falling back to wget

* add fallback to list function

* whitespace

* Better message and shellcheck pacification
This commit is contained in:
Phil Clifford 2021-11-13 10:50:49 +00:00 committed by GitHub
parent d3506d1c4a
commit f19b84afeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -89,6 +89,16 @@ function list_csv() {
local OPTION
local OS
local RELEASE
local ZS=""
local DL=""
# check if we have a zsync installed somewhere
ZS="$(which zsync)"
if [ -x "${ZS}" ]; then
DL="zsync"
else
DL="wget"
fi
echo "Display Name,OS,Release,Option,Downloader"
for OS in $(os_support); do
DISPLAY_NAME="$(pretty_name "${OS}")"
@ -106,13 +116,13 @@ function list_csv() {
if [ "${OS}" == "macos" ]; then
DOWNLOADER="macrecovery"
elif [ "${OS}" == "ubuntu" ] && [ "${RELEASE}" == "canary" ]; then
DOWNLOADER="zsync"
DOWNLOADER="${DL}"
elif [[ "${OS}" == *"ubuntu"* ]] && [ "${RELEASE}" == "devel" ]; then
DOWNLOADER="zsync"
DOWNLOADER="${DL}"
elif [ "${OS}" == "garuda" ]; then
DOWNLOADER="zsync"
DOWNLOADER="${DL}"
elif [[ "${OS}" == *"kdeneon"* ]]; then
DOWNLOADER="zsync"
DOWNLOADER="${DL}"
else
DOWNLOADER="wget"
fi
@ -597,24 +607,33 @@ function zsync_get() {
local OUT=""
local URL="${1}"
FILE="${URL##*/}"
if [ -n "${3}" ]; then
OUT="${3}"
else
OUT="${FILE}"
fi
local ZS=""
if ! mkdir -p "${DIR}" 2>/dev/null; then
echo "ERROR! Unable to create directory ${DIR}"
exit 1
fi
# check if we have a zsync installed somewhere
ZS="$(which zsync)"
if [ -x "${ZS}" ]; then
if [ -n "${3}" ]; then
OUT="${3}"
else
OUT="${FILE}"
fi
if ! zsync "${URL}.zsync" -i "${DIR}/${OUT}" -o "${DIR}/${OUT}" 2>/dev/null; then
echo "ERROR! Failed to download ${URL}.zsync"
if ! mkdir -p "${DIR}" 2>/dev/null; then
echo "ERROR! Unable to create directory ${DIR}"
exit 1
fi
fi
if [ -e "${DIR}/${OUT}.zs-old" ]; then
rm "${DIR}/${OUT}.zs-old"
if ! zsync "${URL}.zsync" -i "${DIR}/${OUT}" -o "${DIR}/${OUT}" 2>/dev/null; then
echo "ERROR! Failed to download ${URL}.zsync"
exit 1
fi
if [ -e "${DIR}/${OUT}.zs-old" ]; then
rm "${DIR}/${OUT}.zs-old"
fi
else
echo "INFO: zsync not found, falling back to wget"
web_get "${ISO}"
fi
}