Call validate_release() automatically

validate_release() is called automatically before get_(), this removes some bioler plate that every get_() function requires and makes quickget easier to maintain.
pull/373/head
Martin Wimpress 3 years ago
parent ba91b7965d
commit 04e65d953a
No known key found for this signature in database
GPG Key ID: 61DF940515E06DA3
  1. 46
      quickget

@ -18,7 +18,6 @@
# EDITION="${1}"
# fi
#
# validate_release "releases_newos"
# ISO="newos-${RELEASE}-amd64.iso"
# URL="https://www.newos.org/download"
# web_get "${URL}/${ISO}" "${VM_PATH}"
@ -80,8 +79,8 @@ function validate_release() {
DISPLAY_NAME="$(pretty_name "${OS}")"
RELEASES=$(${RELEASE_GENERATOR})
if [[ "${RELEASES}" != *"${RELEASE}"* ]]; then
echo "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release."
echo "${RELEASES}"
echo -e "ERROR! ${DISPLAY_NAME} ${RELEASE} is not a supported release.\n"
echo -n "${RELEASES}"
exit 1
fi
}
@ -726,7 +725,6 @@ function get_android() {
local ISO=""
local URL=""
validate_release "releases_android"
fosshubVersionInfo=$(wget -O - -q "https://www.fosshub.com/Android-x86-old.html" | grep "var settings =")
version="android-x86-${RELEASE}"
releaseJson=$(echo "${fosshubVersionInfo:16}" | jq --arg ver "${version}" 'first(.pool.f[] | select((.n | startswith($ver)) and (.n | endswith(".iso"))))')
@ -771,7 +769,6 @@ function get_alpine() {
local VERSION=""
local BRANCH=""
validate_release "releases_alpine"
case ${RELEASE} in
latest) BRANCH="latest-stable";;
*) BRANCH="v${RELEASE}";;
@ -793,7 +790,6 @@ function get_archlinux() {
local URL=""
local VERSION=""
validate_release "releases_archlinux"
VERSION=$(wget -q -O- 'https://archlinux.org/releng/releases/json/' | jq '.latest_version' | cut -d "\"" -f 2)
URL="https://mirror.rackspace.com/archlinux/iso/${VERSION}"
ISO="archlinux-${VERSION}-x86_64.iso"
@ -809,7 +805,6 @@ function get_arcolinux() {
local URL=""
local VERSION=""
validate_release "releases_arcolinux"
URL="https://ant.seedhost.eu/arcolinux/.quick/"
VERSION=$(wget -q -O- "${URL}/info" | cut -d' ' -f 2)
ISO="arcolinuxl-${VERSION}-x86_64.iso"
@ -824,7 +819,6 @@ function get_cachyos() {
local ISO=""
local URL="https://mirror.cachyos.org/ISO"
validate_release "releases_cachyos"
ISO="cachyos-${RELEASE}-x86_64.iso"
web_get "${URL}/${ISO}" "${VM_PATH}"
make_vm_config "${ISO}"
@ -840,7 +834,6 @@ function get_debian() {
EDITION="${1}"
fi
validate_release "releases_debian"
ISO="debian-live-${RELEASE}-amd64-${EDITION}.iso"
HASH=$(wget -q -O- "${URL}/SHA512SUMS" | grep "${ISO}" | cut -d' ' -f1)
web_get "${URL}/${ISO}" "${VM_PATH}"
@ -854,7 +847,6 @@ function get_devuan() {
local URL=""
local VERSION=""
validate_release "releases_devuan"
case ${RELEASE} in
beowulf) VERSION="3.1.1";;
chimaera) VERSION="4.0.0";;
@ -874,7 +866,6 @@ function get_elementary() {
local URL=""
local B66tim=""
validate_release "releases_elementary"
B66tim=$(date +%s | base64)
ISO="elementaryos-${RELEASE}-stable.${ISOTAG}.iso"
# TODO: derive region from geoIP
@ -888,7 +879,6 @@ function get_freebsd() {
local ISO=""
local URL=""
validate_release "releases_freebsd"
ISO="FreeBSD-${RELEASE}-RELEASE-amd64-dvd1.iso"
HASH=$(wget -q -O- "https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/CHECKSUM.SHA512-FreeBSD-${RELEASE}-RELEASE-amd64" | grep '('"${ISO}"')' | cut -d' ' -f4)
URL="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/${RELEASE}/${ISO}"
@ -905,7 +895,6 @@ function get_fedora() {
local URL=""
local VERSION_NUM=""
validate_release "releases_fedora"
FEDORA_VERSIONS=$(wget -q -O- "https://getfedora.org/releases.json" | jq '.[] | select((.variant=="Workstation" or .variant=="Spins") and .arch=="x86_64")')
if [[ "${RELEASE}" == *"beta"* ]]; then
VERSION_NUM=${RELEASE%"_beta"}
@ -928,7 +917,6 @@ function get_gentoo() {
local ISO=""
local URL="https://mirror.bytemark.co.uk/gentoo/releases/amd64/autobuilds/"
validate_release "releases_gentoo"
ISO=$(wget -q -O- "${URL}/${RELEASE}-iso.txt" | grep install | cut -d' ' -f1)
HASH=$( wget -q -O- "${URL}/${ISO}.DIGESTS" | grep iso | grep -v CONTENTS | cut -d' ' -f1)
web_get "${URL}/${ISO}" "${VM_PATH}"
@ -942,7 +930,6 @@ function get_kali() {
local URL=""
local SUBDIR=""
validate_release "releases_kali"
case ${RELEASE} in
latest) SUBDIR="current";;
*) SUBDIR="kali-weekly";;
@ -961,7 +948,6 @@ function get_kdeneon() {
local HASH=""
local URL=""
validate_release "releases_kdeneon"
URL="https://files.kde.org/neon/images/${RELEASE}/current"
ISO=$(wget -q -O- "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f3-)
HASH=$(wget -q -O- "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f1)
@ -975,7 +961,6 @@ function get_kolibrios() {
local ISO="kolibri.iso"
local URL="https://builds.kolibrios.org/eng"
validate_release "releases_kolibrios"
web_get "${URL}/${ISO}" "${VM_PATH}"
make_vm_config "${ISO}"
}
@ -990,7 +975,6 @@ function get_linuxmint() {
EDITION="${1}"
fi
validate_release "releases_linuxmint"
URL="https://mirror.bytemark.co.uk/linuxmint/stable/${RELEASE}"
ISO="linuxmint-${RELEASE}-${EDITION}-64bit.iso"
HASH=$(wget -q -O- "${URL}/${RELEASE}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f1)
@ -1007,7 +991,6 @@ function get_manjaro() {
local KEY_HASH="Download_x64_Checksum ="
local URL=""
validate_release "releases_manjaro"
case ${RELEASE} in
gnome|kde|xfce) BRANCH="official";;
budgie|cinnamon|deepin|i3|mate) BRANCH="community";;
@ -1032,7 +1015,6 @@ function get_mxlinux() {
EDITION="${1}"
fi
validate_release "releases_mxlinux"
case ${EDITION} in
xfce)
URL="https://sourceforge.net/projects/mx-linux/files/Final/Xfce"
@ -1063,7 +1045,6 @@ function get_nixos() {
EDITION="${1}"
fi
validate_release "releases_nixos"
URL="https://channels.nixos.org/nixos-${RELEASE}"
ISO="latest-nixos-${EDITION}-x86_64-linux.iso"
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)
@ -1077,7 +1058,6 @@ function get_openbsd() {
local ISO=""
local URL=""
validate_release "releases_openbsd"
URL="https://cdn.openbsd.org/pub/OpenBSD/${RELEASE}/amd64"
ISO="install${RELEASE//\./}.iso"
HASH=$(wget -q -O- "${URL}/SHA256" | grep "${ISO}" | cut -d' ' -f4)
@ -1091,7 +1071,6 @@ function get_void() {
local ISO=""
local URL="https://alpha.de.repo.voidlinux.org/live/current"
validate_release "releases_void"
DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4)
case ${RELEASE} in
base) ISO="void-live-x86_64-${DATE}.iso";;
@ -1109,7 +1088,6 @@ function get_zorin() {
local ISO=""
local URL=""
validate_release "releases_zorin"
# Parse out the iso URL from the redirector
URL=$(wget -q -S -O- --max-redirect=0 "https://zrn.co/${RELEASE}" 2>&1 | grep Location | cut -d' ' -f4)
ISO="${URL##*/}"
@ -1160,7 +1138,7 @@ function get_solus() {
local ISO=""
local URL=""
validate_release "releases_solus"
if [ -n "${1}" ]; then
EDITION="${1}"
fi
@ -1184,7 +1162,6 @@ function get_opensuse() {
local ISO=""
local URL=""
validate_release "releases_opensuse"
if [ "${RELEASE}" == "tumbleweed" ]; then
ISO="openSUSE-Tumbleweed-DVD-x86_64-Current.iso"
URL="https://download.opensuse.org/tumbleweed/iso/${ISO}"
@ -1214,7 +1191,6 @@ function get_oraclelinux() {
local VER_MAJ=""
local VER_MIN=""
validate_release "releases_oraclelinux"
VER_MAJ=${RELEASE::1}
VER_MIN=${RELEASE:2:1}
URL="https://yum.oracle.com/ISOS/OracleLinux/OL${VER_MAJ}/u${VER_MIN}/x86_64/"
@ -1307,7 +1283,7 @@ function get_popos() {
DRIVER="${1}"
fi
validate_release "releases_popos"
URL=$(wget -q -O- "https://api.pop-os.org/builds/${RELEASE}/${EDITION}" | jq ".url")
URL=$(wget -q -O- "https://api.pop-os.org/builds/${RELEASE}/${DRIVER}" | jq ".url")
URL="${URL//\"/}"
ISO=$(echo "${URL}" | sed -e "s/.*\/\([^\/]*\)$/\1/")
@ -1323,7 +1299,6 @@ function get_regolith() {
local ISO=""
local URL="https://github.com/regolith-linux/regolith-ubuntu-iso-builder/releases/download"
validate_release "releases_regolith"
case ${RELEASE} in
1.6.0_focal)
URL="${URL}/release-release-focal-focal_standard-1.6.0"
@ -1353,7 +1328,6 @@ function get_tails() {
local RELEASE_JSON=""
local URL=""
validate_release "releases_tails"
RELEASE_JSON_URL="https://tails.boum.org/install/v2/Tails/amd64/${RELEASE}/latest.json"
RELEASE_JSON="$(wget -q -O- "${RELEASE_JSON_URL}")"
URL=$(echo "${RELEASE_JSON}" | jq -r '.installations[0]."installation-paths"[]|select(.type=="iso")|."target-files"[0].url')
@ -1386,8 +1360,6 @@ function get_ubuntu() {
if [ "${RELEASE}" == "canary" ] && [ "${OS}" != "ubuntu" ]; then
echo "ERROR! Canary is currently only available for Ubuntu."
exit 1
else
validate_release "releases_ubuntu"
fi
if [ "${RELEASE}" == "canary" ]; then
@ -1422,8 +1394,6 @@ function get_garuda() {
local LATEST_URL=""
local HASH_URL=""
validate_release "releases_garuda"
case ${RELEASE} in
mate|cinnamon)
REL_TYPE="community";;
@ -1449,8 +1419,6 @@ function get_haiku() {
local URL=""
local HASH=""
validate_release "releases_haiku"
BASE=$(echo "${RELEASE}" | cut -d'-' -f1)
URL="https://cdn.haiku-os.org/haiku-release/${BASE}"
ISO="haiku-${RELEASE}-anyboot.iso"
@ -1776,8 +1744,6 @@ function get_windows() {
local DOWNLOAD_ID=""
local DOWNLOAD_URL=""
validate_release "releases_windows"
# Ignore the most recent Windows 10 release for now.
if [ "${RELEASE}" -eq 10 ]; then
INDEX=0
@ -1899,8 +1865,10 @@ if [ -n "${2}" ]; then
fi
fi
VM_PATH="${OS}-${RELEASE}-${EDITION}"
validate_release releases_"${OS}"
get_"${OS}" "${EDITION}"
elif [[ "${OS}" == *"ubuntu"* ]]; then
validate_release releases_"${OS}"
get_ubuntu
elif [ "${OS}" == "windows" ]; then
LANG="English International"
@ -1914,8 +1882,10 @@ if [ -n "${2}" ]; then
exit 1
fi
fi
validate_release releases_windows
get_windows "${LANG}"
else
validate_release releases_"${OS}"
get_"${OS}"
fi
else

Loading…
Cancel
Save