diff --git a/quickget b/quickget index f88dea8..23749bb 100755 --- a/quickget +++ b/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