From 693eda8bed6a1efc041ffeb87e25d5c6f53ed8f2 Mon Sep 17 00:00:00 2001 From: zenobit Date: Wed, 27 Dec 2023 08:12:36 +0100 Subject: [PATCH] updated quickget arguments --- quickget | 765 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 723 insertions(+), 42 deletions(-) diff --git a/quickget b/quickget index 4ea03d1..173c1ff 100755 --- a/quickget +++ b/quickget @@ -5,7 +5,7 @@ export LC_ALL=C # # 1. Update os_support() - add new OS, all lowercase # 2. Update pretty_name() - add a pretty name for new OS *only if the catch all is not suitable* -# 3. Update os_homepages() - add a homepage for new OS +# 3. Update os_homepage() - add a homepage for new OS # 4. Create a releases_newos() generator (required) outputs the current supported release versions # 5. Create a editions_newos() generator (optional) outputs the editions if new OS has multiple flavours/editions # 6. Update make_vm_config() - add any *required* new OS tweaks @@ -36,7 +36,7 @@ if [ "${1}" == '--test-iso-url' ] || [ "${1}" == '-t' ]; then else set -- "$2" fi -elif [ "${1}" == '--show-iso-url' ] || [ "${1}" == '-s' ]; then +elif [ "${1}" == '--show-iso-url' ] || [ "${1}" == '-u' ]; then show_iso_url="on" if [ -n "$4" ]; then set -- "$2" "$3" "$4" @@ -48,6 +48,18 @@ elif [ "${1}" == '--show-iso-url' ] || [ "${1}" == '-s' ]; then elif [ "${1}" == '--open-distro-homepage' ] || [ "${1}" == '-o' ]; then open_distro_homepage="on" set -- "$2" +elif [ "${1}" == '--show-distro-homepage' ] || [ "${1}" == '-s' ]; then + show_distro_homepage="on" + set -- "$2" +elif [ "${1}" == '--download-iso' ] || [ "${1}" == '-d' ]; then + download_iso="on" + if [ -n "$4" ]; then + set -- "$2" "$3" "$4" + elif [ -n "$3" ]; then + set -- "$2" "$3" + else + set -- "$2" + fi fi function pretty_name() { @@ -55,15 +67,25 @@ function pretty_name() { local PRETTY_NAME="" SIMPLE_NAME="${1}" case ${SIMPLE_NAME} in + agarimos) PRETTY_NAME="AgarimOS";; alma) PRETTY_NAME="Alma Linux";; alpine) PRETTY_NAME="Alpine Linux";; android) PRETTY_NAME="Android x86";; archlinux) PRETTY_NAME="Arch Linux";; archcraft) PRETTY_NAME="Archcraft";; arcolinux) PRETTY_NAME="Arco Linux";; + artixlinux) PRETTY_NAME="Artix Linux";; + atheanos) PRETTY_NAME="Athena OS";; + biglinux) PRETTY_NAME="BigLinux";; blendos) PRETTY_NAME="BlendOS";; + bodhi) PRETTY_NAME="Bodhi Linux";; cachyos) PRETTY_NAME="CachyOS";; centos-stream) PRETTY_NAME="CentOS Stream";; + cereus) PRETTY_NAME="Cereus Linux";; + chimera) PRETTY_NAME="Chimera Linux";; + crunchbang++) PRETTY_NAME="Crunchbangplusplus";; + devuan) PRETTY_NAME="Devuan";; + dietpi) PRETTY_NAME="DietPi";; dragonflybsd) PRETTY_NAME="DragonFlyBSD";; easyos) PRETTY_NAME="EasyOS";; elementary) PRETTY_NAME="elementary OS";; @@ -71,6 +93,8 @@ function pretty_name() { endless) PRETTY_NAME="Endless OS";; freebsd) PRETTY_NAME="FreeBSD";; freedos) PRETTY_NAME="FreeDOS";; + fvoid) PRETTY_NAME="F-Void";; + gabeeos) PRETTY_NAME="gabeeOS Linux";; garuda) PRETTY_NAME="Garuda Linux";; ghostbsd) PRETTY_NAME="GhostBSD";; holoiso) PRETTY_NAME="SteamOS HoloISO";; @@ -80,9 +104,11 @@ function pretty_name() { linuxmint) PRETTY_NAME="Linux Mint";; lmde) PRETTY_NAME="Linux Mint Debian Edition";; mageia) PRETTY_NAME="Mageia";; + miyo) PRETTY_NAME="Miyo Linux";; mxlinux) PRETTY_NAME="MX Linux";; netboot) PRETTY_NAME="netboot.xyz";; netbsd) PRETTY_NAME="NetBSD";; + nitrux) PRETTY_NAME="Nitrux";; nixos) PRETTY_NAME="NixOS";; macos) PRETTY_NAME="macOS";; openbsd) PRETTY_NAME="OpenBSD";; @@ -91,12 +117,17 @@ function pretty_name() { oraclelinux) PRETTY_NAME="Oracle Linux";; peppermint) PRETTY_NAME="PeppermintOS";; popos) PRETTY_NAME="Pop!_OS";; + pureos) PRETTY_NAME="PureOS";; reactos) PRETTY_NAME="ReactOS";; rebornos) PRETTY_NAME="RebornOS";; rockylinux) PRETTY_NAME="Rocky Linux";; + slitaz) PRETTY_NAME="SliTaz GNU/Linux";; + sparkylinux) PRETTY_NAME="SparkyLinux";; + spiral) PRETTY_NAME="SpiralLinux";; tinycore) PRETTY_NAME="Tiny Core Linux";; truenas-core) PRETTY_NAME="TrueNAS Core";; truenas-scale) PRETTY_NAME="TrueNAS Scale";; + tuxedoos) PRETTY_NAME="TuxedoOS";; ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";; ubuntucinnamon) PRETTY_NAME="Ubuntu Cinnamon";; ubuntukylin) PRETTY_NAME="Ubuntu Kylin";; @@ -105,7 +136,9 @@ function pretty_name() { ubuntustudio) PRETTY_NAME="Ubuntu Studio";; ubuntu-unity) PRETTY_NAME="Ubuntu Unity";; vanillaos) PRETTY_NAME="Vanilla OS";; + ventoy) PRETTY_NAME="Ventoy";; void) PRETTY_NAME="Void Linux";; + voidpup) PRETTY_NAME="Void Puppy";; vxlinux) PRETTY_NAME="VX Linux";; xerolinux) PRETTY_NAME="XeroLinux";; zorin) PRETTY_NAME="Zorin OS";; @@ -203,22 +236,32 @@ function list_csv() { } function os_support() { - echo alma \ + echo agarimos \ + alma \ alpine \ android \ antix \ archlinux \ archcraft \ arcolinux \ + antix \ + artixlinux \ + athenaos \ batocera \ + bazzite \ + biglinux \ blendos \ bodhi \ bunsenlabs \ cachyos \ centos-stream \ + cereus \ + chimeralinux \ + crunchbang++ \ debian \ deepin \ devuan \ + dietpi \ dragonflybsd \ easyos \ edubuntu \ @@ -228,6 +271,8 @@ function os_support() { fedora \ freebsd \ freedos \ + fvoid \ + gabeeos \ garuda \ gentoo \ ghostbsd \ @@ -242,9 +287,11 @@ function os_support() { lmde \ mageia \ manjaro \ + miyo \ mxlinux \ netboot \ netbsd \ + nitrux \ nixos \ lubuntu \ macos \ @@ -260,13 +307,17 @@ function os_support() { rockylinux \ siduction \ slackware \ + slax \ + slitaz \ solus \ + sparkylinux \ spiral \ tails \ tinycore \ trisquel \ truenas-core \ truenas-scale \ + tuxedoos \ ubuntu \ ubuntu-budgie \ ubuntucinnamon \ @@ -276,7 +327,9 @@ function os_support() { ubuntustudio \ ubuntu-unity \ vanillaos \ + ventoy \ void \ + voidpup \ vxlinux \ windows \ xerolinux \ @@ -284,11 +337,12 @@ function os_support() { zorin } -function os_homepages(){ +function os_homepage(){ local SIMPLE_NAME="" local HOMEPAGE="" SIMPLE_NAME="${1}" case ${SIMPLE_NAME} in + agarimos) HOMEPAGE="https://sourceforge.net/projects/agarimos/";; alma) HOMEPAGE="https://almalinux.org/";; alpine) HOMEPAGE="https://alpinelinux.org/";; android) HOMEPAGE="https://www.android-x86.org/";; @@ -296,15 +350,23 @@ function os_homepages(){ archlinux) HOMEPAGE="https://archlinux.org/";; archcraft) HOMEPAGE="https://archcraft.io/";; arcolinux) HOMEPAGE="https://arcolinux.com/";; + artixlinux) HOMEPAGE="https://artixlinux.com/";; + athenaos) HOMEPAGE="https://athenaos.org/";; batocera) HOMEPAGE="https://batocera.org/";; + bazzite) HOMEPAGE="https://bazzite.gg/";; + biglinux) HOMEPAGE="https://www.biglinux.com.br/";; blendos) HOMEPAGE="https://blendos.co/";; bodhi) HOMEPAGE="https://www.bodhilinux.com/";; bunsenlabs) HOMEPAGE="https://www.bunsenlabs.org/";; cachyos) HOMEPAGE="https://cachyos.org/";; centos-stream) HOMEPAGE="https://www.centos.org/centos-stream/";; + cereues) HOMEPAGE="https://cereus-linux.sourceforge.io/";; + chimeralinux) HOMEPAGE="https://chimera-linux.org/";; + crunchbang++) HOMEPAGE="https://www.crunchbangplusplus.org/";; debian) HOMEPAGE="https://www.debian.org/";; deepin) HOMEPAGE="https://www.deepin.org/";; devuan) HOMEPAGE="https://www.devuan.org/";; + dietpi) HOMEPAGE="https://dietpi.com/";; dragonflybsd) HOMEPAGE="https://www.dragonflybsd.org/";; easyos) HOMEPAGE="https://easyos.org/";; edubuntu) HOMEPAGE="https://www.edubuntu.org/";; @@ -314,6 +376,8 @@ function os_homepages(){ fedora) HOMEPAGE="https://www.fedoraproject.org/";; freebsd) HOMEPAGE="https://www.freebsd.org/";; freedos) HOMEPAGE="https://freedos.org/";; + fvoid) HOMEPAGE="https://f-void.sourceforge.io/";; + gabeeos) HOMEPAGE="https://gabeeoslinux.sourceforge.io/";; garuda) HOMEPAGE="https://garudalinux.org/";; gentoo) HOMEPAGE="https://www.gentoo.org/";; ghostbsd) HOMEPAGE="https://www.ghostbsd.org/";; @@ -326,13 +390,15 @@ function os_homepages(){ linuxlite) HOMEPAGE="https://www.linuxliteos.com/";; linuxmint) HOMEPAGE="https://linuxmint.com/";; lmde) HOMEPAGE="https://www.linuxmint.com/download_lmde.php";; + lubuntu) HOMEPAGE="https://lubuntu.me/";; mageia) HOMEPAGE="https://www.mageia.org/";; manjaro) HOMEPAGE="https://manjaro.org/";; mxlinux) HOMEPAGE="https://mxlinux.org/";; + miyo) HOMEPAGE="https://miyolinux.sourceforge.io/";; netboot) HOMEPAGE="https://netboot.xyz/";; netbsd) HOMEPAGE="https://www.netbsd.org/";; + nitrux) HOMEPAGE="https://nxos.org/";; nixos) HOMEPAGE="https://nixos.org/";; - lubuntu) HOMEPAGE="https://lubuntu.me/";; macos) HOMEPAGE="https://www.apple.com/macos/";; openbsd) HOMEPAGE="https://www.openbsd.org/";; openindiana) HOMEPAGE="https://www.openindiana.org/";; @@ -346,13 +412,17 @@ function os_homepages(){ rockylinux) HOMEPAGE="https://rockylinux.org/";; siduction) HOMEPAGE="https://siduction.org/";; slackware) HOMEPAGE="http://www.slackware.com/";; + slax) HOMEPAGE="https://www.slax.org/";; + slitaz) HOMEPAGE="https://www.slitaz.org/";; solus) HOMEPAGE="https://getsol.us/";; + sparkylinux) HOMEPAGE="https://sparkylinux.org/";; spiral) HOMEPAGE="https://spirallinux.github.io/";; tails) HOMEPAGE="https://tails.net/";; tinycore) HOMEPAGE="http://www.tinycorelinux.net/";; trisquel) HOMEPAGE="https://trisquel.info/";; truenas-core) HOMEPAGE="https://www.truenas.com/truenas-core/";; truenas-scale) HOMEPAGE="https://www.truenas.com/truenas-scale/";; + tuxedoos) HOMEPAGE="https://www.tuxedocomputers.com/en/TUXEDO-OS_1.tuxedo";; ubuntu) HOMEPAGE="https://ubuntu.com/";; ubuntu-budgie) HOMEPAGE="https://ubuntubudgie.org/";; ubuntucinnamon) HOMEPAGE="https://ubuntucinnamon.org/";; @@ -362,7 +432,9 @@ function os_homepages(){ ubuntustudio) HOMEPAGE="https://ubuntustudio.org/";; ubuntu-unity) HOMEPAGE="https://ubuntuunity.org/";; vanillaos) HOMEPAGE="https://vanillaos.org/";; + ventoy) HOMEPAGE="https://www.ventoy.net/";; void) HOMEPAGE="https://voidlinux.org/";; + voidpup) HOMEPAGE="https://sourceforge.net/projects/vpup/";; vxlinux) HOMEPAGE="https://vxlinux.org/";; windows) HOMEPAGE="https://www.microsoft.com/en-us/windows/";; xerolinux) HOMEPAGE="https://xerolinux.xyz/";; @@ -372,6 +444,142 @@ function os_homepages(){ echo "${HOMEPAGE}" } +# Not in upstream +function releases_agarimos() { + echo latest +} + +function editions_agarimos() { + echo plasma xfce lxqt gnome +} + +function releases_artixlinux() { + echo stable +} + +function editions_artixlinux() { + echo base-dinit base-openrc base-runit base-s6 cinnamon-dinit cinnamon-openrc cinnamon-runit cinnamon-s6 lxde-dinit lxde-openrc lxde-runit lxde-s6 lxqt-dinit lxqt-openrc lxqt-runit lxqt-s6 mate-dinit mate-openrc mate-runit mate-s6 plasma-dinit plasma-openrc plasma-runit plasma-s6 xfce-dinit xfce-openrc xfce-runit xfce-s6 community-gtk-openrc community-qt-openrc +} + +function releases_athenaos() { + echo 23.06.23 +} + +function releases_batocera() { + echo latest +} + +function releases_bazzite() { + echo $(wget -q -O- "https://api.github.com/repos/ublue-os/bazzite/releases" | grep 'download_url' | grep 'sum' | cut -d '/' -f8 | cut -d'v' -f2 | tr '\n' ' ') +} + +function releases_biglinux() { + echo kde +} + +function releases_blendos() { +# Pull the rss feed +wget -q https://sourceforge.net/projects/blendos/rss?path=/ISOs/ -O- | grep -E -o 'https://.*blendOS\.iso.*/tmp/blendos-isos.rss + + local RLIST + RLIST=$(grep -E -o 'https://.*blendOS\.iso.*/dev/null; then + if [ "${DIR}" != "$(pwd)" ] && ! mkdir -p "${DIR}" 2>/dev/null; then echo "ERROR! Unable to create directory ${DIR}" exit 1 fi @@ -958,13 +1185,13 @@ function zsync_get() { local OUT="" local URL="${1}" - # Test mode for ISO - if [ "${show_iso_url}" == 'on' ]; then - echo "${URL}" - exit 0 + # Test mode for ISO + if [ "${show_iso_url}" == 'on' ]; then + echo "${URL}" + exit 0 elif [ "${test_iso_url}" == 'on' ]; then - wget --spider "${URL}" - exit 0 + wget --spider "${URL}" + exit 0 elif command -v zsync &>/dev/null; then if [ -n "${3}" ]; then OUT="${3}" @@ -1004,6 +1231,10 @@ function make_vm_config() { local GUEST="" local SEC_BOOT="" + if [ "${download_iso}" == "on" ]; then + exit 0 + fi + IMAGE_FILE="${1}" ISO_FILE="${2}" case "${OS}" in @@ -1096,6 +1327,11 @@ EOF echo "disk_size=\"2G\"" >> "${CONF_FILE}" echo "ram=\"128M\"" >> "${CONF_FILE}" ;; + slitaz) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"4G\"" >> "${CONF_FILE}" + echo "ram=\"512M\"" >> "${CONF_FILE}" + ;; truenas-scale|truenas-core) echo "boot=\"legacy\"" >> "${CONF_FILE}" # the rest is non-functional @@ -1153,6 +1389,406 @@ EOF exit 0 } +# QUICKGET-EXTENDED ONLY DISTROS! + +function get_agarimos() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" + #local DATE="" + #local KERNEL="" + case ${EDITION} in + gnome) + URL="https://sourceforge.net/projects/agarimos/files/Gnome" + ISO="AgarimOS-Gnome-Catppuccin-Liv-x86_64-6.5.12_1-20231130.iso" + ;; + plasma) + URL="https://sourceforge.net/projects/agarimos/files/Plasma" + ISO="AgarimOS-Plasma-Dracula-Live-x86_64-6.5.11_1-20231120.iso" + ;; + xfce) + URL="https://sourceforge.net/projects/agarimos/files/XFCE4" + ISO="AgarimOS-XFCE4-Catppuccin-Live-x86_64-6.5.12_1-20231122.iso" + ;; + lxqt) + URL="https://sourceforge.net/projects/agarimos/files/LXQT-KWIN" + ISO="AgarimOS-LXQT-KWIN-Dracula-Live-x86_64-6.5.12_1-20231121.iso" + ;; + esac + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_artixlinux() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="https://iso.artixlinux.org/iso" + DATE=$(wget -q -O- ${URL}/sha256sums | cut -d'-' -f4 | head -1) + ISO="artix-${EDITION}-${DATE}-x86_64.iso" + HASH=$(wget -q -O- ${URL}/sha256sums | grep "${ISO}") + echo "${URL}/${ISO} ${HASH}" +} + +function get_athenaos() { + local HASH="" + local URL="" + local TMPURL="" + local ISO="athena-2023.06.23-x86_64.iso" + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/athena-iso/files/v23.06.23/${ISO}/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + +function get_batocera() { + local HASH="" + local URL="https://mirrors.o2switch.fr/batocera/x86_64/stable/last" + local ISO="$(curl -sl ${URL}/ | grep -e 'batocera.*img.gz'|cut -d\" -f2)" + echo "${URL}/${ISO} ${HASH}" +} + +function get_bazzite() { + local HASH="" + local ISO="" + local URL="https://github.com/ublue-os/bazzite/releases/download/v${RELEASE}" + + ISO=$(wget -q -O- "https://api.github.com/repos/ublue-os/bazzite/releases" | grep 'download_url' | grep 'sum' | cut -d '"' -f4 | cut -d'.' -f1-5 | grep "${RELEASE}" | cut -d'/' -f9) + HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | grep 'SHA256' | cut -d' ' -f4) + echo "${URL}/${ISO} ${HASH}" +} + +function get_biglinux() { + local HASH="" + local ISO="" + local URL="https://iso.biglinux.com.br/" + ISO=$(grep -Eo 'biglinux_[0-9]{4}(-[0-9]{2}){2}_k[0-9]{2,3}.iso' <(wget -q -O- ${URL}) | sort -u | tail -n2 | head -n1) + HASH=$(curl -s ${URL}${ISO}.md5 | grep -Eo '[[:alnum:]]{32}') + echo "${URL}${ISO} ${HASH}" +} + +function get_cereus() { + local EDITION="${1:-}" + local HASH="" + local DATE="" + local ISO="" + local URL="https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/${EDITION}" + DATE=$(wget -q -O- https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/base/SHA256SUM | grep 'x86_64-base' | rev | cut -d'-' -f1 | rev | cut -d'.' -f1-3) + ISO="cereus-beta-live-x86_64-${EDITION}-${DATE}.iso" + case ${EDITION} in + base) HASH=$(wget -q -O- "${URL}/SHA256SUM" | grep "${ISO}" | cut -d' ' -f1);; + *) HASH=$(wget -q -O- "${URL}/SHA256" | grep "${ISO}" | cut -d' ' -f1);; + esac + echo "${URL}/${ISO} ${HASH}" +} + +function get_chimeralinux() { + local EDITION="${1:-}" + local HASH="" + local DATE="" + local ISO="" + local URL="https://repo.chimera-linux.org/live/${RELEASE}" + DATE=$(wget -q -O- "${URL}/sha256sums.txt" | head -n1 | cut -d'-' -f5) + ISO="chimera-linux-x86_64-LIVE-${DATE}-${EDITION}.iso" + HASH=$(wget -q -O- "${URL}/sha256sums.txt" | grep 'x86_64-LIVE' | grep "${EDITION}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_crunchbang++() { + local HASH="" + local ISO="" + local URL="" + local URLPART="" + local URLPART2="" + + URLPART="https://github.com/CBPP/cbpp" + + case ${RELEASE} in + 8) + URLPART2="releases/download/v1.0-amd64" + ISO="cbpp-1.0-amd64-20150428.iso" + ;; + 9) + URLPART2="9-amd64/releases/download/v9.0" + ISO="cbpp-9.0-amd64-20170621.iso" + ;; + 10) + URLPART2="releases/download/v10" + ISO="cbpp-10.1-amd64-20190713.iso" + ;; + 11) + URLPART2="releases/download/v11.2" + ISO="cbpp-11.2-amd64-20230514.iso" + ;; + 12) + URLPART2="releases/download/v12.0" + ISO="cbpp-12.0-amd64-20230611.iso" + ;; + esac + + URL="${URLPART}/${URLPART2}" + echo "${URL}/${ISO} ${HASH}" +} + +function get_dietpi() { + local HASH="" + local ISO="" + local URL="https://dietpi.com/downloads/images" + case ${RELEASE} in + bios) + case ${EDITION} in + bookworm) + local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm.7z" + ;; + bullseye) + local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye.7z" + ;; + bookworm-installer) + local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm_Installer.7z" + ;; + bullseye-installer) + local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye_Installer.7z" + ;; + esac + ;; + uefi) + case ${EDITION} in + bookworm-installer) + local ISO="DietPi_NativePC-UEFI-x86_64-Bookworm_Installer.7z" + ;; + bullseye-installer) + local ISO="DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z" + ;; + esac + ;; + esac + HASH=$(wget -q -O- "${URL}/SHASUMS.txt" | grep "${ISO}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_fvoid() { + local HASH="" + local URL="" + local TMPURL="" + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/f-void/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + +function get_gabeeos() { + local HASH="" + local URL="" +# local TMPURL="" +# TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/gabeeos/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + case ${EDITION} in + openbox) + ISO="gabeeOSLinux-Openbox-Cherry-x86_64-6.1.25_1-20230502.iso" + URL="https://sourceforge.net/projects/gabeeoslinux/files/Distro/Openbox/beta" + HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f2) + ;; + qtile) + ISO="gabeeOSLinux-Qtile-x86_64-6.1.25_1-20230508.iso" + URL="https://sourceforge.net/projects/gabeeoslinux/files/Distro/Qtile/beta" + HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f4) + ;; + esac + echo "${URL}/${ISO} ${HASH}" +} + +function get_miyo() { + local EDITION="${1:-}" + local HASH="" + local URL="https://sourceforge.net/projects/miyolinux/files/${RELEASE}-Release/${EDITION}" + + case ${EDITION} in + Kwin) ISO="miyo-kwin-x86_64-BIOS-20220526.iso";; + Deboot-Ceres) ISO="Deboot-Ceres-x86-64-BIOS-20220415.iso";; + JWM) ISO="miyolinux-jwm-x86_64-BIOS-20220226.iso";; + Openbox) ISO="MiyoLinux-x86_64-BIOS-20220129.iso";; + MATE) ISO="mate-minimal-x86_64-BIOS-20220107.iso";; + esac + + HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_pureos() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" + case ${RELEASE} in + 9) + URL="https://downloads.puri.sm/9/live/${EDITION}/2020-08-06" + ISO="pureos-${RELEASE}-${EDITION}-live_20200806-amd64.hybrid.iso" + HASH=$(wget -q -O- "${URL}/checksums.sha256sum" | grep "${ISO}" | cut -d' ' -f1) + ;; + 10) + URL="https://downloads.puri.sm/10/${EDITION}/2023-06-14" + ISO="pureos-${RELEASE}-${EDITION}-live-20230614_amd64.iso" + HASH=$(wget -q -O- "${URL}/pureos-${RELEASE}-${EDITION}-live-20230614_amd64.checksums_sha256.txt" | head -1 | cut -d' ' -f1) + esac + echo "${URL}/${ISO} ${HASH}" +} + +function get_rebornos() { + local ISO=$(curl -s 'https://www.rebornos.org/download/' | grep -ohE 'https://pub-cb7a4d4f7a974896b3bf40c52d1defbc.r2.dev/RebornOS-ISO/(rebornos_xfce_minimal|rebornos_iso)-[0-9]{4}.[0-9]{2}.[0-9]{2}-x86_64.iso' | tail -n1) + local HASH=$(curl -s 'https://www.rebornos.org/download/' | grep -ozP 'Checksum MD5:.*[0-9a-fA-F]{32}' | grep -zoP '[0-9a-fA-F]{32}' | cut -d '' -f1) + echo "${ISO} ${HASH}" +} + +function get_slax() { + local HASH="" + local ISO="" + local URL="https://slax.org/download-slax.php?a=64bit&b=${EDITION}" + case ${EDITION} in + Debian) ISO="slax-64bit-11.6.0.iso" + HASH="b3771211c4485fec2e4f2418b06125f3e53424c5" + ;; + Slackware) ISO="slax-64bit-15.0.1.iso" + HASH="4ec9dff930251fbae847a56b18d53505147faf84" + ;; + esac + echo "${URL}/${ISO} ${HASH}" +} + +function get_slitaz() { + local HASH="" + local ISO="slitaz-rolling-${RELEASE}" + local URL="http://mirror.slitaz.org/iso/rolling" + case ${RELEASE} in + preferred) ISO="slitaz-rolling";; + *) ISO="slitaz-rolling-${RELEASE}";; + esac + HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) + echo "${URL}/${ISO}.iso ${HASH}" +} + +function get_sparkylinux() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" + ISO="sparkylinux-${RELEASE}-x86_64-${EDITION}.iso" + case ${EDITION} in + minimalcli) URL="https://sourceforge.net/projects/sparkylinux/files/cli";; + minimalgui) URL="https://sourceforge.net/projects/sparkylinux/files/base";; + *) URL="https://sourceforge.net/projects/sparkylinux/files/${EDITION}";; + esac + HASH=$(wget -q -O- ${URL}/${ISO}.allsums.txt | head -2 | grep 'iso' | cut -d' ' -f1) + echo "${URL}/${ISO}" "${HASH}" +} + +function get_tuxedoos() { + local DATE="" + local HASH="" + local ISO="" + local URL="https://os.tuxedocomputers.com" + + DATE=$(wget -q -O- "${URL}" | grep '.iso' | cut -d'-' -f4 | cut -d'.' -f1) + ISO="TUXEDO-OS-${RELEASE}-${DATE}.iso" + + HASH=$(wget -q -O- "${URL}checksums/${ISO}.md5" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_ventoy() { + local HASH="" + local ISO="ventoy-${RELEASE}-livecd.iso" + local URL="https://github.com/ventoy/Ventoy/releases/download/v${RELEASE}" + HASH="$(wget -q -O- "${URL}/sha256.txt" | grep "${ISO}" | cut -d' ' -f4)" + echo "${URL}/${ISO} ${HASH}" +} + +function get_voidpup() { + local HASH="" + local URL="" + local TMPURL="" + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/vpup/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + +function get_slax() { + local HASH="" + local ISO="" + local URL="https://slax.org/download-slax.php?a=64bit&b=${EDITION}" + case ${EDITION} in + Debian) ISO="slax-64bit-11.6.0.iso" + HASH="b3771211c4485fec2e4f2418b06125f3e53424c5" + ;; + Slackware) ISO="slax-64bit-15.0.1.iso" + HASH="4ec9dff930251fbae847a56b18d53505147faf84" + ;; + esac + echo "${URL}/${ISO} ${HASH}" +} + +function get_slitaz() { + local HASH="" + local ISO="slitaz-rolling-${RELEASE}" + local URL="http://mirror.slitaz.org/iso/rolling" + case ${RELEASE} in + preferred) ISO="slitaz-rolling";; + *) ISO="slitaz-rolling-${RELEASE}";; + esac + HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1) + echo "${URL}/${ISO}.iso ${HASH}" +} + +function get_sparkylinux() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" + ISO="sparkylinux-${RELEASE}-x86_64-${EDITION}.iso" + case ${EDITION} in + minimalcli) URL="https://sourceforge.net/projects/sparkylinux/files/cli";; + minimalgui) URL="https://sourceforge.net/projects/sparkylinux/files/base";; + *) URL="https://sourceforge.net/projects/sparkylinux/files/${EDITION}";; + esac + HASH=$(wget -q -O- ${URL}/${ISO}.allsums.txt | head -2 | grep 'iso' | cut -d' ' -f1) + echo "${URL}/${ISO}" "${HASH}" +} + +function get_tuxedoos() { + local DATE="202309111354" + local HASH="" + local ISO="TUXEDO-OS-${RELEASE}-${DATE}.iso" + local URL="https://os.tuxedocomputers.com/" + HASH=$(wget -q -O- "${URL}/checksums" | grep "${ISO}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +function get_ventoy() { + local HASH="" + local ISO="ventoy-${RELEASE}-livecd.iso" + local URL="https://github.com/ventoy/Ventoy/releases/download/v${RELEASE}" + HASH="$(wget -q -O- "${URL}/sha256.txt" | grep "${ISO}" | cut -d' ' -f4)" + echo "${URL}/${ISO} ${HASH}" +} + +function get_voidpup() { + local HASH="" + local URL="" + local TMPURL="" + TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/vpup/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4) + URL=${TMPURL%\?*} + echo "${URL} ${HASH}" +} + +function get_vxlinux() { + local HASH="" + local ISO="vx-${RELEASE}.iso" + local URL="https://github.com/VX-Linux/main/releases/download/${RELEASE}" + + HASH=$(wget -q -O- "${URL}/vx-${RELEASE}.md5" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + +# QUICKEMU STANDARD + function get_alma() { local EDITION="${1:-}" local HASH="" @@ -1795,6 +2431,21 @@ function get_netbsd() { echo "${URL}/${ISO} ${HASH}" } +function get_nitrux() { + local HASH="" + local URLBASE="" + local URL="" + local ISONAME="" + local ISO="" + + URLBASE="https://sourceforge.net/projects/nitruxos/files/Release" + URL="${URLBASE}/ISO" + ISONAME="nitrux-nx-desktop-plasma-fefc905b-amd64" + ISO="${ISONAME}.iso" + HASH=$(wget -q -O- "${URLBASE}/MD5/${ISONAME}.md5sum" | grep "${ISO}" | cut -d' ' -f1) + echo "${URL}/${ISO} ${HASH}" +} + function get_nixos() { local EDITION="${1:-}" local HASH="" @@ -1964,14 +2615,31 @@ function get_solus() { echo "${URL}/${ISO} ${HASH}" } -function get_spiral() { - local EDITION="${1:-}" - local HASH="" - local ISO="SpiralLinux_${EDITION}_12.231005_x86-64.iso" - local URL="https://sourceforge.net/projects/spirallinux/files/12.231005" +function get_sparkylinux() { + local EDITION="${1:-}" + local HASH="" + local ISO="" + local URL="" - HASH=$(wget -q -O- 'https://sourceforge.net/projects/spirallinux/rss?path=/' | grep "${ISO}" | grep 'md5' | cut -d'<' -f3 | cut -d'>' -f2) - echo "${URL}/${ISO}" "${HASH}" + ISO="sparkylinux-${RELEASE}-x86_64-${EDITION}.iso" + case ${EDITION} in + minimalcli) URL="https://sourceforge.net/projects/sparkylinux/files/cli";; + minimalgui) URL="https://sourceforge.net/projects/sparkylinux/files/base";; + *) URL="https://sourceforge.net/projects/sparkylinux/files/${EDITION}";; + esac + + HASH=$(wget -q -O- ${URL}/${ISO}.allsums.txt | head -2 | grep 'iso' | cut -d' ' -f1) + echo "${URL}/${ISO}" "${HASH}" +} + +function get_spiral() { + local EDITION="${1:-}" + local HASH="" + local ISO="SpiralLinux_${EDITION}_12.231005_x86-64.iso" + local URL="https://sourceforge.net/projects/spirallinux/files/12.231005" + + HASH=$(wget -q -O- 'https://sourceforge.net/projects/spirallinux/rss?path=/' | grep "${ISO}" | grep 'md5' | cut -d'<' -f3 | cut -d'>' -f2) + echo "${URL}/${ISO}" "${HASH}" } function get_tails() { @@ -2714,7 +3382,10 @@ create_vm() { bzip2 -d "${VM_PATH}/${ISO}" ISO="${ISO/.bz2/}" fi - + if [ ${OS} == "dietpi" ] && [[ $ISO =~ ".7z" ]]; then + 7zip x -o${VM_PATH} ${VM_PATH}/${ISO} + ISO=$(ls ${VM_PATH} | grep -i '.iso') + fi if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then unzip ${VM_PATH}/${ISO} -d ${VM_PATH} ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') @@ -2748,13 +3419,12 @@ else echo -n " - Operating Systems: " os_support echo " - You can also use this arguments: - Only show ISO download URL - --show-iso-url / -s {distro} {release} [edition] - Test if ISO is available - --test-iso-url / -t {distro} {release} [edition] - Open distro homepage - --open-distro-homepage / -o {distro}" +You can also use these arguments +--show-iso-url / -u : Show ISO download URL +--test-iso-url / -t : Test if ISO is available +--download-iso / -d : Download ISO +--open-distro-homepage / -o : Open distro homepage +--show-distro-homepage / -s : Show distro homepage link" exit 1 fi @@ -2782,8 +3452,15 @@ if [ -n "${2}" ]; then exit 1 fi fi - - # Handle odd missing fedora cominations + # Handle odd missing dietpi combinations + if [[ $OS == dietpi ]] ; then + if [[ ${RELEASE} = "uefi" && ${EDITION} = "bookworm" ]] || [[ ${RELEASE} = "uefi" && ${EDITION} = "bullseye" ]] ; then + echo "ERROR! Unsupported combination" + echo "Only installers are supported for uefi, please choose another Release or Edition" + exit 1; + fi + fi + # Handle odd missing fedora combinations if [[ $OS == fedora ]] ; then if [[ ${RELEASE} = "33" && ${EDITION} = "i3" ]] || [[ ${RELEASE} = "34" && ${EDITION} = "Cinnamon" ]] || [[ "${RELEASE}" < "39" && ${EDITION} = "Onyx" ]]; then echo "ERROR! Unsupported combination" @@ -2832,9 +3509,13 @@ if [ -n "${2}" ]; then fi else if [ "${open_distro_homepage}" == 'on' ]; then - HOMEPAGE=$(os_homepages ${OS}) + HOMEPAGE=$(os_homepage ${OS}) open_url "${HOMEPAGE}" && exit 0 fi + if [ "${show_distro_homepage}" == 'on' ]; then + HOMEPAGE=$(os_homepage ${OS}) + echo "${HOMEPAGE}" && exit 0 + fi echo "ERROR! You must specify a release." case ${OS} in *ubuntu-server*)