Reorder get_() and releases_() functions

pull/373/head
Martin Wimpress 3 years ago
parent 3f72f79e59
commit 35216cef15
No known key found for this signature in database
GPG Key ID: 61DF940515E06DA3
  1. 482
      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}"
}

Loading…
Cancel
Save