From 35216cef15c4dbd8ce76dc07ff417a50af62e73d Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Mon, 21 Feb 2022 16:29:42 +0000 Subject: [PATCH] Reorder get_() and releases_() functions --- quickget | 482 +++++++++++++++++++++++++++---------------------------- 1 file changed, 240 insertions(+), 242 deletions(-) diff --git a/quickget b/quickget index 66efd72..4de5f4a 100755 --- a/quickget +++ b/quickget @@ -168,8 +168,8 @@ function os_support() { debian \ devuan \ elementary \ - freebsd \ fedora \ + freebsd \ garuda \ gentoo \ haiku \ @@ -240,6 +240,11 @@ function releases_arcolinux() { echo latest } +function releases_cachyos() { + echo 2022.01.09 \ + 2022.02.11 +} + function releases_debian() { echo 11.2.0 } @@ -255,11 +260,6 @@ function editions_debian() { xfce } -function releases_cachyos() { - echo 2022.01.09 \ - 2022.02.11 -} - function releases_devuan() { echo beowulf \ chimaera @@ -269,19 +269,15 @@ function releases_elementary() { echo 6.1 } -function releases_freebsd(){ - echo 12.2 \ - 13.0 -} - function releases_fedora(){ echo 33 \ 34 \ 35 } -function releases_gentoo(){ - echo latest +function releases_freebsd(){ + echo 12.2 \ + 13.0 } function releases_garuda() { @@ -301,6 +297,10 @@ function releases_garuda() { cinnamon } +function releases_gentoo(){ + echo latest +} + function releases_haiku() { echo r1beta3-x86_64 \ r1beta3-x86_gcc2h @@ -342,6 +342,25 @@ function editions_mxlinux(){ fluxbox } +function releases_macos() { + echo high-sierra \ + mojave \ + catalina \ + big-sur \ + monterey +} + +function releases_manjaro() { + echo xfce \ + gnome \ + kde \ + budgie \ + cinnamon \ + deepin \ + i3 \ + mate +} + function releases_nixos(){ echo 21.05 \ 21.11 @@ -353,7 +372,6 @@ function editions_nixos(){ minimal } - function releases_openbsd(){ echo 7.0 } @@ -377,25 +395,6 @@ function releases_oraclelinux() { 7.7 } -function releases_macos() { - echo high-sierra \ - mojave \ - catalina \ - big-sur \ - monterey -} - -function releases_manjaro() { - echo xfce \ - gnome \ - kde \ - budgie \ - cinnamon \ - deepin \ - i3 \ - mate -} - function releases_popos() { echo 20.04 \ 21.04 \ @@ -414,7 +413,6 @@ function releases_regolith() { 2.0.0_hirsute } - function releases_rockylinux() { echo 8.5 \ 8.4 \ @@ -848,19 +846,6 @@ function get_elementary() { make_vm_config "${ISO}" } -function get_freebsd() { - local HASH="" - local ISO="" - local URL="" - - 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}" - web_get "${URL}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" - make_vm_config "${ISO}" -} - function get_fedora() { local FEDORA_RELEASE="" local FEDORA_VERSIONS="" @@ -886,6 +871,47 @@ function get_fedora() { make_vm_config "${ISO}" } +function get_freebsd() { + local HASH="" + local ISO="" + local URL="" + + 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}" + web_get "${URL}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${ISO}" +} + +function get_garuda() { + local DATE="" + local HASH="" + local ISO="" + local URL="http://mirrors.fossho.st/garuda/iso" + local REL_TYPE="" + local LATEST_URL="" + local HASH_URL="" + + case ${RELEASE} in + mate|cinnamon) + REL_TYPE="community";; + *) + REL_TYPE="garuda";; + esac + + # Follow daily releases and use SHA hash file to derive .iso and date + LATEST_URL="${URL}/latest/${REL_TYPE}/${RELEASE}/latest.iso.sha256" + HASH_URL="$(wget -q -O- "${LATEST_URL}")" + ISO="$(echo "${HASH_URL}" | awk '{print $NF}')" + HASH=$(echo "${HASH_URL}" | cut -d' ' -f1) + DATE=$(echo "${ISO}" | awk -F'-' '{print $NF}' | cut -d'.' -f1) + URL="${URL}/${REL_TYPE}/${RELEASE}/${DATE}" + web_get "${URL}/${ISO}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${OS}-${RELEASE}.iso" +} + function get_gentoo() { local HASH="" local ISO="" @@ -898,6 +924,21 @@ function get_gentoo() { make_vm_config "${ISO}" } +function get_haiku() { + local BASE="" + local ISO="" + local URL="" + local HASH="" + + BASE=$(echo "${RELEASE}" | cut -d'-' -f1) + URL="https://cdn.haiku-os.org/haiku-release/${BASE}" + ISO="haiku-${RELEASE}-anyboot.iso" + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4) + web_get "${URL}/${ISO}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${ISO}" +} + function get_kali() { local HASH="" local ISO="" @@ -957,6 +998,74 @@ function get_linuxmint() { make_vm_config "${ISO}" } +function get_macos() { + local BOARD_ID="" + local CWD="" + local MACRECOVERY="" + local MLB="" + + case ${RELEASE} in + high-sierra) + BOARD_ID="Mac-7BA5B2D9E42DDD94" + MLB="00000000000J80300";; + mojave) + BOARD_ID="Mac-7BA5B2DFE22DDD8C" + MLB="00000000000KXPG00";; + catalina) + BOARD_ID="Mac-CFF7D910A743CAAF" + MLB="00000000000PHCD00";; + big-sur) + BOARD_ID="Mac-35C1E88140C3E6CF" + MLB="00000000000000000";; + monterey) + BOARD_ID="Mac-06F11F11946D27C5" + MLB="00000000000000000";; + *) echo "ERROR! Unknown release: ${RELEASE}" + releases_macos + exit 1;; + esac + + # Use a bundled macrecovery if possible + CWD="$(dirname "${0}")" + if [ -x "${CWD}/macrecovery" ]; then + MACRECOVERY="${CWD}/macrecovery" + elif [ -x /usr/bin/macrecovery ]; then + MACRECOVERY="/usr/bin/macrecovery" + else + web_get "https://raw.githubusercontent.com/wimpysworld/quickemu/master/macrecovery" "${HOME}/.quickemu" + MACRECOVERY="python3 ${HOME}/.quickemu/macrecovery" + fi + + if [ -z "${MACRECOVERY}" ]; then + echo "ERROR! Can not find a usable macrecovery." + exit 1 + fi + + # Get firmware + web_get "https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2" "${VM_PATH}" + web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_CODE.fd" "${VM_PATH}" + if [ ! -e "${VM_PATH}/OVMF_VARS-1024x768.fd" ]; then + web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1024x768.fd" "${VM_PATH}" + fi + + if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then + echo "Downloading ${RELEASE}..." + ${MACRECOVERY} \ + --board-id "${BOARD_ID}" \ + --mlb "${MLB}" \ + --basename RecoveryImage \ + --outdir "${VM_PATH}" \ + download + fi + + if [ -e "${VM_PATH}/RecoveryImage.dmg" ] && [ ! -e "${VM_PATH}/RecoveryImage.img" ]; then + echo "Converting RecoveryImage..." + qemu-img convert "${VM_PATH}/RecoveryImage.dmg" -O raw "${VM_PATH}/RecoveryImage.img" + fi + + make_vm_config RecoveryImage.img +} + function get_manjaro() { local BRANCH="" local HASH="" @@ -1041,105 +1150,6 @@ function get_openbsd() { make_vm_config "${ISO}" } -function get_void() { - local DATE="" - local EDITION="" - local HASH="" - local ISO="" - local URL="https://alpha.de.repo.voidlinux.org/live/current" - - DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) - if [ -n "${1}" ]; then - EDITION="${1}" - fi - case ${EDITION} in - glibc) ISO="void-live-x86_64-${DATE}.iso";; - musl) ISO="void-live-x86_64-musl-${DATE}.iso";; - xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; - xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; - esac - HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" - web_get "${URL}/${ISO}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" - make_vm_config "${ISO}" -} - -function get_zorin() { - local ISO="" - local URL="" - - # 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##*/}" - web_get "${URL}" "${VM_PATH}" - make_vm_config "${ISO}" -} - -function get_rockylinux() { - local EDITION="" - local HASH="" - local ISO="" - local URL="" - - if [ -n "${1}" ]; then - EDITION="${1}" - fi - - URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64" - ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" - HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO}" | cut -d' ' -f4) - web_get "${URL}/${ISO}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" - make_vm_config "${ISO}" -} - -function get_slackware() { - local HASH="" - local ISO="" - local URL="" - - case ${RELEASE} in - current) - URL="https://slackware.nl/slackware/slackware64-current-iso" - ISO="slackware64-current-install-dvd.iso" - ;; - *) - URL="https://mirrors.slackware.com/slackware/slackware-iso/slackware64-${RELEASE}-iso" - ISO="slackware64-${RELEASE}-install-dvd.iso" - ;; - esac - - HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) - web_get "${URL}/${ISO}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" - make_vm_config "${ISO}" -} - -function get_solus() { - local EDITION="" - local HASH="" - local ISO="" - local URL="" - - if [ -n "${1}" ]; then - EDITION="${1}" - fi - - case ${EDITION} in - mate|gnome) - EDITION=${EDITION^^};; - *) - EDITION=${EDITION^};; - esac - - URL="https://mirrors.rit.edu/solus/images/${RELEASE}" - ISO="Solus-${RELEASE}-${EDITION}.iso" - HASH=$(wget -q -O- "${URL}.sha256sum" | cut -d' ' -f1) - web_get "${URL}/${ISO}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" - make_vm_config "${ISO}" -} - function get_opensuse() { local HASH="" local ISO="" @@ -1188,74 +1198,6 @@ function get_oraclelinux() { make_vm_config "${ISO}" } -function get_macos() { - local BOARD_ID="" - local CWD="" - local MACRECOVERY="" - local MLB="" - - case ${RELEASE} in - high-sierra) - BOARD_ID="Mac-7BA5B2D9E42DDD94" - MLB="00000000000J80300";; - mojave) - BOARD_ID="Mac-7BA5B2DFE22DDD8C" - MLB="00000000000KXPG00";; - catalina) - BOARD_ID="Mac-CFF7D910A743CAAF" - MLB="00000000000PHCD00";; - big-sur) - BOARD_ID="Mac-35C1E88140C3E6CF" - MLB="00000000000000000";; - monterey) - BOARD_ID="Mac-06F11F11946D27C5" - MLB="00000000000000000";; - *) echo "ERROR! Unknown release: ${RELEASE}" - releases_macos - exit 1;; - esac - - # Use a bundled macrecovery if possible - CWD="$(dirname "${0}")" - if [ -x "${CWD}/macrecovery" ]; then - MACRECOVERY="${CWD}/macrecovery" - elif [ -x /usr/bin/macrecovery ]; then - MACRECOVERY="/usr/bin/macrecovery" - else - web_get "https://raw.githubusercontent.com/wimpysworld/quickemu/master/macrecovery" "${HOME}/.quickemu" - MACRECOVERY="python3 ${HOME}/.quickemu/macrecovery" - fi - - if [ -z "${MACRECOVERY}" ]; then - echo "ERROR! Can not find a usable macrecovery." - exit 1 - fi - - # Get firmware - web_get "https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2" "${VM_PATH}" - web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_CODE.fd" "${VM_PATH}" - if [ ! -e "${VM_PATH}/OVMF_VARS-1024x768.fd" ]; then - web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1024x768.fd" "${VM_PATH}" - fi - - if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then - echo "Downloading ${RELEASE}..." - ${MACRECOVERY} \ - --board-id "${BOARD_ID}" \ - --mlb "${MLB}" \ - --basename RecoveryImage \ - --outdir "${VM_PATH}" \ - download - fi - - if [ -e "${VM_PATH}/RecoveryImage.dmg" ] && [ ! -e "${VM_PATH}/RecoveryImage.img" ]; then - echo "Converting RecoveryImage..." - qemu-img convert "${VM_PATH}/RecoveryImage.dmg" -O raw "${VM_PATH}/RecoveryImage.img" - fi - - make_vm_config RecoveryImage.img -} - function get_popos() { local EDITION="" local HASH="" @@ -1303,6 +1245,71 @@ function get_regolith() { make_vm_config "${ISO}" } +function get_rockylinux() { + local EDITION="" + local HASH="" + local ISO="" + local URL="" + + if [ -n "${1}" ]; then + EDITION="${1}" + fi + + URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64" + ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" + HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO}" | cut -d' ' -f4) + web_get "${URL}/${ISO}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${ISO}" +} + +function get_slackware() { + local HASH="" + local ISO="" + local URL="" + + case ${RELEASE} in + current) + URL="https://slackware.nl/slackware/slackware64-current-iso" + ISO="slackware64-current-install-dvd.iso" + ;; + *) + URL="https://mirrors.slackware.com/slackware/slackware-iso/slackware64-${RELEASE}-iso" + ISO="slackware64-${RELEASE}-install-dvd.iso" + ;; + esac + + HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) + web_get "${URL}/${ISO}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${ISO}" +} + +function get_solus() { + local EDITION="" + local HASH="" + local ISO="" + local URL="" + + if [ -n "${1}" ]; then + EDITION="${1}" + fi + + case ${EDITION} in + mate|gnome) + EDITION=${EDITION^^};; + *) + EDITION=${EDITION^};; + esac + + URL="https://mirrors.rit.edu/solus/images/${RELEASE}" + ISO="Solus-${RELEASE}-${EDITION}.iso" + HASH=$(wget -q -O- "${URL}.sha256sum" | cut -d' ' -f1) + web_get "${URL}/${ISO}" "${VM_PATH}" + check_hash "${ISO}" "${HASH}" + make_vm_config "${ISO}" +} + function get_tails() { local ISO="" local HASH="" @@ -1367,46 +1374,37 @@ function get_ubuntu() { fi } -function get_garuda() { +function get_void() { local DATE="" + local EDITION="" local HASH="" local ISO="" - local URL="http://mirrors.fossho.st/garuda/iso" - local REL_TYPE="" - local LATEST_URL="" - local HASH_URL="" + local URL="https://alpha.de.repo.voidlinux.org/live/current" - case ${RELEASE} in - mate|cinnamon) - REL_TYPE="community";; - *) - REL_TYPE="garuda";; + DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) + if [ -n "${1}" ]; then + EDITION="${1}" + fi + case ${EDITION} in + glibc) ISO="void-live-x86_64-${DATE}.iso";; + musl) ISO="void-live-x86_64-musl-${DATE}.iso";; + xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; + xfce-musl) ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; esac - - # Follow daily releases and use SHA hash file to derive .iso and date - LATEST_URL="${URL}/latest/${REL_TYPE}/${RELEASE}/latest.iso.sha256" - HASH_URL="$(wget -q -O- "${LATEST_URL}")" - ISO="$(echo "${HASH_URL}" | awk '{print $NF}')" - HASH=$(echo "${HASH_URL}" | cut -d' ' -f1) - DATE=$(echo "${ISO}" | awk -F'-' '{print $NF}' | cut -d'.' -f1) - URL="${URL}/${REL_TYPE}/${RELEASE}/${DATE}" + HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" web_get "${URL}/${ISO}" "${VM_PATH}" check_hash "${ISO}" "${HASH}" - make_vm_config "${OS}-${RELEASE}.iso" + make_vm_config "${ISO}" } -function get_haiku() { - local BASE="" +function get_zorin() { local ISO="" local URL="" - local HASH="" - BASE=$(echo "${RELEASE}" | cut -d'-' -f1) - URL="https://cdn.haiku-os.org/haiku-release/${BASE}" - ISO="haiku-${RELEASE}-anyboot.iso" - HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | grep "${ISO}" | cut -d' ' -f4) - web_get "${URL}/${ISO}" "${VM_PATH}" - check_hash "${ISO}" "${HASH}" + # 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##*/}" + web_get "${URL}" "${VM_PATH}" make_vm_config "${ISO}" }