mirror of
				https://github.com/oSoWoSo/DistroHopper.git
				synced 2024-08-14 22:46:53 +00:00 
			
		
		
		
	Update quickget
This commit is contained in:
		
							parent
							
								
									62a51945e0
								
							
						
					
					
						commit
						f3bfd314f4
					
				
					 1 changed files with 214 additions and 203 deletions
				
			
		
							
								
								
									
										405
									
								
								quickget
									
										
									
									
									
								
							
							
						
						
									
										405
									
								
								quickget
									
										
									
									
									
								
							|  | @ -52,6 +52,7 @@ function pretty_name() { | ||||||
|     gabeeos)            PRETTY_NAME="gabeeOS Linux";; |     gabeeos)            PRETTY_NAME="gabeeOS Linux";; | ||||||
|     garuda)             PRETTY_NAME="Garuda Linux";; |     garuda)             PRETTY_NAME="Garuda Linux";; | ||||||
|     ghostbsd)           PRETTY_NAME="GhostBSD";; |     ghostbsd)           PRETTY_NAME="GhostBSD";; | ||||||
|  |     holoiso)            PRETTY_NAME="HoloISO";; | ||||||
|     kdeneon)            PRETTY_NAME="KDE Neon";; |     kdeneon)            PRETTY_NAME="KDE Neon";; | ||||||
|     kolibrios)          PRETTY_NAME="KolibriOS";; |     kolibrios)          PRETTY_NAME="KolibriOS";; | ||||||
|     linuxmint)          PRETTY_NAME="Linux Mint";; |     linuxmint)          PRETTY_NAME="Linux Mint";; | ||||||
|  | @ -64,6 +65,7 @@ function pretty_name() { | ||||||
|     nixos)              PRETTY_NAME="NixOS";; |     nixos)              PRETTY_NAME="NixOS";; | ||||||
|     macos)              PRETTY_NAME="macOS";; |     macos)              PRETTY_NAME="macOS";; | ||||||
|     openbsd)            PRETTY_NAME="OpenBSD";; |     openbsd)            PRETTY_NAME="OpenBSD";; | ||||||
|  |     openindiana)        PRETTY_NAME="OpenIndiana";; | ||||||
|     opensuse)           PRETTY_NAME="openSUSE";; |     opensuse)           PRETTY_NAME="openSUSE";; | ||||||
|     oraclelinux)        PRETTY_NAME="Oracle Linux";; |     oraclelinux)        PRETTY_NAME="Oracle Linux";; | ||||||
|     popos)              PRETTY_NAME="Pop!_OS";; |     popos)              PRETTY_NAME="Pop!_OS";; | ||||||
|  | @ -71,15 +73,16 @@ function pretty_name() { | ||||||
|     rebornos)           PRETTY_NAME="RebornOS";; |     rebornos)           PRETTY_NAME="RebornOS";; | ||||||
|     rockylinux)         PRETTY_NAME="Rocky Linux";; |     rockylinux)         PRETTY_NAME="Rocky Linux";; | ||||||
|     slitaz)             PRETTY_NAME="SliTaz GNU/Linux";; |     slitaz)             PRETTY_NAME="SliTaz GNU/Linux";; | ||||||
|     steamos)            PRETTY_NAME="SteamOS HoloISO";; |  | ||||||
|     truenas-core)       PRETTY_NAME="TrueNAS Core";; |     truenas-core)       PRETTY_NAME="TrueNAS Core";; | ||||||
|     truenas-scale)      PRETTY_NAME="TrueNAS Scale";; |     truenas-scale)      PRETTY_NAME="TrueNAS Scale";; | ||||||
|     ubuntu-budgie)      PRETTY_NAME="Ubuntu Budgie";; |     ubuntu-budgie)      PRETTY_NAME="Ubuntu Budgie";; | ||||||
|     ubuntucinnamon)     PRETTY_NAME="Ubuntu Cinnamon";; |     ubuntucinnamon)     PRETTY_NAME="Ubuntu Cinnamon";; | ||||||
|     ubuntukylin)        PRETTY_NAME="Ubuntu Kylin";; |     ubuntukylin)        PRETTY_NAME="Ubuntu Kylin";; | ||||||
|     ubuntu-mate)        PRETTY_NAME="Ubuntu MATE";; |     ubuntu-mate)        PRETTY_NAME="Ubuntu MATE";; | ||||||
|  |     ubuntu-server)      PRETTY_NAME="Ubuntu Server";; | ||||||
|     ubuntustudio)       PRETTY_NAME="Ubuntu Studio";; |     ubuntustudio)       PRETTY_NAME="Ubuntu Studio";; | ||||||
|     ubuntu-unity)       PRETTY_NAME="Ubuntu Unity";; |     ubuntu-unity)       PRETTY_NAME="Ubuntu Unity";; | ||||||
|  |     vanillaos)          PRETTY_NAME="Vanilla OS";; | ||||||
|     ventoy)             PRETTY_NAME="Ventoy";; |     ventoy)             PRETTY_NAME="Ventoy";; | ||||||
|     void)               PRETTY_NAME="Void Linux";; |     void)               PRETTY_NAME="Void Linux";; | ||||||
|     voidpup)            PRETTY_NAME="Void Puppy";; |     voidpup)            PRETTY_NAME="Void Puppy";; | ||||||
|  | @ -98,6 +101,7 @@ function validate_release() { | ||||||
| 
 | 
 | ||||||
|   DISPLAY_NAME="$(pretty_name "${OS}")" |   DISPLAY_NAME="$(pretty_name "${OS}")" | ||||||
|   case ${OS} in |   case ${OS} in | ||||||
|  |     *ubuntu-server*) RELEASE_GENERATOR="releases_ubuntu-server";; | ||||||
|     *ubuntu*) RELEASE_GENERATOR="releases_ubuntu";; |     *ubuntu*) RELEASE_GENERATOR="releases_ubuntu";; | ||||||
|     *) RELEASE_GENERATOR="${1}";; |     *) RELEASE_GENERATOR="${1}";; | ||||||
|   esac |   esac | ||||||
|  | @ -153,7 +157,9 @@ function list_csv() { | ||||||
|     for RELEASE in $("releases_${FUNC}"); do |     for RELEASE in $("releases_${FUNC}"); do | ||||||
|       if [ "${OS}" == "macos" ]; then |       if [ "${OS}" == "macos" ]; then | ||||||
|         DOWNLOADER="macrecovery" |         DOWNLOADER="macrecovery" | ||||||
|       elif [ "${OS}" == "ubuntu" ] && [ "${RELEASE}" == "canary" ] && [ ${HAS_ZSYNC} -eq 1 ]; then |       elif [ "${OS}" == "ubuntu" ] && [ "${RELEASE}" == "daily-canary" ] && [ ${HAS_ZSYNC} -eq 1 ]; then | ||||||
|  |         DOWNLOADER="zsync" | ||||||
|  |       elif [ "${OS}" == "ubuntu" ] && [ "${RELEASE}" == "daily-legacy" ] && [ ${HAS_ZSYNC} -eq 1 ]; then | ||||||
|         DOWNLOADER="zsync" |         DOWNLOADER="zsync" | ||||||
|       elif [[ "${OS}" == *"ubuntu"* ]] && [ "${RELEASE}" == "devel" ] && [ ${HAS_ZSYNC} -eq 1 ]; then |       elif [[ "${OS}" == *"ubuntu"* ]] && [ "${RELEASE}" == "devel" ] && [ ${HAS_ZSYNC} -eq 1 ]; then | ||||||
|         DOWNLOADER="zsync" |         DOWNLOADER="zsync" | ||||||
|  | @ -208,6 +214,7 @@ function os_support() { | ||||||
|     gentoo \ |     gentoo \ | ||||||
|     ghostbsd \ |     ghostbsd \ | ||||||
|     haiku \ |     haiku \ | ||||||
|  |     holoiso \ | ||||||
|     kali \ |     kali \ | ||||||
|     kdeneon \ |     kdeneon \ | ||||||
|     kolibrios \ |     kolibrios \ | ||||||
|  | @ -224,6 +231,7 @@ function os_support() { | ||||||
|     lubuntu \ |     lubuntu \ | ||||||
|     macos \ |     macos \ | ||||||
|     openbsd \ |     openbsd \ | ||||||
|  |     openindiana \ | ||||||
|     opensuse \ |     opensuse \ | ||||||
|     oraclelinux \ |     oraclelinux \ | ||||||
|     popos \ |     popos \ | ||||||
|  | @ -234,7 +242,6 @@ function os_support() { | ||||||
|     slackware \ |     slackware \ | ||||||
|     slitaz \ |     slitaz \ | ||||||
|     solus \ |     solus \ | ||||||
|     steamos \ |  | ||||||
|     tails \ |     tails \ | ||||||
|     truenas-core \ |     truenas-core \ | ||||||
|     truenas-scale \ |     truenas-scale \ | ||||||
|  | @ -243,8 +250,10 @@ function os_support() { | ||||||
|     ubuntucinnamon \ |     ubuntucinnamon \ | ||||||
|     ubuntukylin \ |     ubuntukylin \ | ||||||
|     ubuntu-mate \ |     ubuntu-mate \ | ||||||
|  |     ubuntu-server \ | ||||||
|     ubuntustudio \ |     ubuntustudio \ | ||||||
|     ubuntu-unity \ |     ubuntu-unity \ | ||||||
|  |     vanillaos \ | ||||||
|     ventoy \ |     ventoy \ | ||||||
|     void \ |     void \ | ||||||
|     voidpup \ |     voidpup \ | ||||||
|  | @ -304,15 +313,21 @@ function releases_batocera() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_blendos() { | function releases_blendos() { | ||||||
|     curl -s https://api.github.com/repos/blend-os/blendOS/releases  |grep tag_name | grep -o -E '[[:digit:]]+\.[[:digit:]]+' |     local RLIST | ||||||
|  |     RLIST=$(curl -s https://api.github.com/repos/blend-os/blendOS/releases  |grep tag_name | grep -o -E '[[:digit:]]+\.[[:digit:]]+' | tr ' \r\n' ' ') | ||||||
|  |     echo ${RLIST} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function editions_blendos() { | ||||||
|  |     echo gnome kde | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_cachyos() { | function releases_cachyos() { | ||||||
|     echo latest |     echo 2300305 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function editions_cachyos() { | function editions_cachyos() { | ||||||
|     echo kde gnome cli |     echo kde gnome | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_centos-stream() { | function releases_centos-stream() { | ||||||
|  | @ -394,6 +409,7 @@ function releases_fedora() { | ||||||
| 
 | 
 | ||||||
| function editions_fedora() { | function editions_fedora() { | ||||||
|   echo Workstation \ |   echo Workstation \ | ||||||
|  |   Budgie \ | ||||||
|   Cinnamon \ |   Cinnamon \ | ||||||
|   i3 \ |   i3 \ | ||||||
|   KDE \ |   KDE \ | ||||||
|  | @ -402,6 +418,9 @@ function editions_fedora() { | ||||||
|   Mate \ |   Mate \ | ||||||
|   Xfce \ |   Xfce \ | ||||||
|   Silverblue \ |   Silverblue \ | ||||||
|  |   Sericea \ | ||||||
|  |   Kinoite \ | ||||||
|  |   Sway \ | ||||||
|   Server |   Server | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -463,6 +482,10 @@ function editions_haiku() { | ||||||
|     echo x86_64 x86_gcc2h |     echo x86_64 x86_gcc2h | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function releases_holoiso() { | ||||||
|  |     echo 4.0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function releases_kali() { | function releases_kali() { | ||||||
|     echo current kali-weekly |     echo current kali-weekly | ||||||
| } | } | ||||||
|  | @ -539,7 +562,7 @@ function releases_netbsd() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_nixos(){ | function releases_nixos(){ | ||||||
|     echo 21.05 21.11 22.05 22.11 |     echo 21.05 21.11 22.05 22.11 23.05 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function editions_nixos(){ | function editions_nixos(){ | ||||||
|  | @ -551,6 +574,14 @@ function releases_openbsd(){ | ||||||
|     echo ${OBSD_RELEASES} |     echo ${OBSD_RELEASES} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function releases_openindiana(){ | ||||||
|  |     echo 20230421 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function editions_openindiana(){ | ||||||
|  |     echo gui text minimal | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function releases_opensuse(){ | function releases_opensuse(){ | ||||||
|     echo 15.0 15.1 15.2 15.3 15.4 microos tumbleweed |     echo 15.0 15.1 15.2 15.3 15.4 microos tumbleweed | ||||||
| } | } | ||||||
|  | @ -582,13 +613,11 @@ function get_rebornos() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_rockylinux() { | function releases_rockylinux() { | ||||||
|     echo 8.3 8.4 8.5 9.0 9.1 |     echo 8.3 8.4 8.5 8.6 8.7 9.0 9.1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Rocky have renamed dvd1 -> dvd at 9.0 |  | ||||||
| function editions_rockylinux() { | function editions_rockylinux() { | ||||||
|     echo minimal \ |     echo minimal dvd boot | ||||||
|     "dvd (dvd1 prior to 9.0)" |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_siduction() { | function releases_siduction() { | ||||||
|  | @ -615,10 +644,6 @@ function editions_solus() { | ||||||
|     echo Budgie GNOME MATE Plasma |     echo Budgie GNOME MATE Plasma | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_steamos() { |  | ||||||
|     echo 4.0 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function releases_tails() { | function releases_tails() { | ||||||
|     echo stable |     echo stable | ||||||
| } | } | ||||||
|  | @ -640,7 +665,7 @@ function releases_truenas-scale() { | ||||||
| 
 | 
 | ||||||
| function releases_ubuntu() { | function releases_ubuntu() { | ||||||
|     local LTS_SUPPORT="14.04 16.04 18.04 20.04 22.04" |     local LTS_SUPPORT="14.04 16.04 18.04 20.04 22.04" | ||||||
|     local INTERIM_SUPPORT="22.10 23.04" |     local INTERIM_SUPPORT="23.04" | ||||||
| 
 | 
 | ||||||
|     case "${OS}" in |     case "${OS}" in | ||||||
|         kubuntu|lubuntu|ubuntukylin|\ |         kubuntu|lubuntu|ubuntukylin|\ | ||||||
|  | @ -656,11 +681,10 @@ function releases_ubuntu() { | ||||||
|         INTERIM_SUPPORT="${INTERIM_SUPPORT}" |         INTERIM_SUPPORT="${INTERIM_SUPPORT}" | ||||||
|         ;; |         ;; | ||||||
|         ubuntucinnamon) |         ubuntucinnamon) | ||||||
|         INTERIM_SUPPORT="${INTERIM_SUPPORT/22.10 /}" |         INTERIM_SUPPORT="${INTERIM_SUPPORT}" | ||||||
|         ;; |         ;; | ||||||
|     esac |     esac | ||||||
| 
 | 
 | ||||||
|     #INTERIM_SUPPORT="${INTERIM_SUPPORT/22.10 /}" |  | ||||||
| 
 | 
 | ||||||
|     if [ "${OS}" == "ubuntu-unity" ]  ||  [ "${OS}" == "ubuntucinnamon" ]; then |     if [ "${OS}" == "ubuntu-unity" ]  ||  [ "${OS}" == "ubuntucinnamon" ]; then | ||||||
|         echo ${INTERIM_SUPPORT} \ |         echo ${INTERIM_SUPPORT} \ | ||||||
|  | @ -674,6 +698,7 @@ function releases_ubuntu() { | ||||||
|             jammy-daily \ |             jammy-daily \ | ||||||
|             daily-live \ |             daily-live \ | ||||||
|             daily-canary \ |             daily-canary \ | ||||||
|  |             daily-legacy \ | ||||||
|             eol-4.10 \ |             eol-4.10 \ | ||||||
|             eol-5.04 \ |             eol-5.04 \ | ||||||
|             eol-5.10 \ |             eol-5.10 \ | ||||||
|  | @ -713,20 +738,28 @@ function releases_ubuntu() { | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function releases_ubuntu-server() { | ||||||
|  |    local LTS_SUPPORT="18.04 20.04 22.04" | ||||||
|  |    local INTERIM_SUPPORT="23.04" | ||||||
|  |     echo ${LTS_SUPPORT} \ | ||||||
|  |          ${INTERIM_SUPPORT} \ | ||||||
|  |          daily-live | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function releases_vanillaos() { | ||||||
|  |     echo 22.10 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function releases_ventoy() { | function releases_ventoy() { | ||||||
|     echo latest |     echo latest | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_void() { | function releases_void() { | ||||||
|     echo current 20221001 20210316 20210930 20210218 20191109 20190526 20190217 20181111 20171007 20170825 20170220 |     echo current | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function editions_void() { | function editions_void() { | ||||||
|     echo base base-musl cinnamon cinnamon-musl enlightenment enlightenment-musl gnome gnome-musl lxde lxde-musl lxqt lxqt-musl mate mate-musl xfce xfce-musl |     echo glibc musl xfce-glibc xfce-musl | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function releases_voidpup() { |  | ||||||
|     echo latest |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_vxlinux() { | function releases_vxlinux() { | ||||||
|  | @ -738,48 +771,7 @@ function editions_vxlinux() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_windows() { | function releases_windows() { | ||||||
|     echo 8 10 11 |     echo 10 11 | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function languages_windows() { |  | ||||||
|     LANGS=(Arabic |  | ||||||
|     "Brazilian Portuguese" |  | ||||||
|     Bulgarian |  | ||||||
|     "Chinese (Simplified)" |  | ||||||
|     "Chinese (Traditional)" |  | ||||||
|     Croatian |  | ||||||
|     Czech |  | ||||||
|     Danish |  | ||||||
|     Dutch |  | ||||||
|     English |  | ||||||
|     "English International" |  | ||||||
|     Estonian |  | ||||||
|     Finnish |  | ||||||
|     French |  | ||||||
|     "French Canadian" |  | ||||||
|     German |  | ||||||
|     Greek |  | ||||||
|     Hebrew |  | ||||||
|     Hungarian |  | ||||||
|     Italian |  | ||||||
|     Japanese |  | ||||||
|     Korean |  | ||||||
|     Latvian |  | ||||||
|     Lithuanian |  | ||||||
|     Norwegian |  | ||||||
|     Polish |  | ||||||
|     Portuguese |  | ||||||
|     Romanian |  | ||||||
|     Russian |  | ||||||
|     "Serbian Latin" |  | ||||||
|     Slovak |  | ||||||
|     Slovenian |  | ||||||
|     Spanish |  | ||||||
|     "Spanish (Mexico)" |  | ||||||
|     Swedish |  | ||||||
|     Thai |  | ||||||
|     Turkish |  | ||||||
|     Ukrainian) |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function releases_xerolinux() { | function releases_xerolinux() { | ||||||
|  | @ -838,7 +830,7 @@ function web_get() { | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     if command -v aria2c &>/dev/null; then |     if command -v aria2c &>/dev/null; then | ||||||
|         if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" -o "${DIR}/${FILE}"; then |         if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" --dir "${DIR}" -o "${FILE}"; then | ||||||
|           echo #Necessary as aria2c in suppressed mode does not have new lines |           echo #Necessary as aria2c in suppressed mode does not have new lines | ||||||
|           echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again." |           echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again." | ||||||
|           exit 1 |           exit 1 | ||||||
|  | @ -927,6 +919,9 @@ function make_vm_config() { | ||||||
|         openbsd) |         openbsd) | ||||||
|             GUEST="openbsd" |             GUEST="openbsd" | ||||||
|             IMAGE_TYPE="iso";; |             IMAGE_TYPE="iso";; | ||||||
|  |         openindiana) | ||||||
|  |             GUEST="solaris" | ||||||
|  |             IMAGE_TYPE="iso";; | ||||||
|         reactos) |         reactos) | ||||||
|             GUEST="reactos" |             GUEST="reactos" | ||||||
|             IMAGE_TYPE="iso";; |             IMAGE_TYPE="iso";; | ||||||
|  | @ -963,7 +958,10 @@ EOF | ||||||
| 
 | 
 | ||||||
|         # OS specific tweaks |         # OS specific tweaks | ||||||
|         case ${OS} in |         case ${OS} in | ||||||
|           alma|centos-stream|endless|oraclelinux|popos|rockylinux|nixos) |           alma|centos-stream|endless|nixos|oraclelinux|popos|rockylinux) | ||||||
|  |             echo "disk_size=\"32G\"" >> "${CONF_FILE}";; | ||||||
|  |           openindiana) | ||||||
|  |             echo "boot=\"legacy\"" >> "${CONF_FILE}" | ||||||
|             echo "disk_size=\"32G\"" >> "${CONF_FILE}";; |             echo "disk_size=\"32G\"" >> "${CONF_FILE}";; | ||||||
|           batocera) |           batocera) | ||||||
|             echo "disk_size=\"8G\"" >> "${CONF_FILE}";; |             echo "disk_size=\"8G\"" >> "${CONF_FILE}";; | ||||||
|  | @ -994,13 +992,25 @@ EOF | ||||||
|             echo "ram=\"512M\"" >> "${CONF_FILE}" |             echo "ram=\"512M\"" >> "${CONF_FILE}" | ||||||
|             ;; |             ;; | ||||||
|           truenas-scale|truenas-core) |           truenas-scale|truenas-core) | ||||||
|             echo |  | ||||||
|             echo "boot=\"legacy\"" >> "${CONF_FILE}" |             echo "boot=\"legacy\"" >> "${CONF_FILE}" | ||||||
|            # the rest is non-functional |            # the rest is non-functional | ||||||
|            # echo "bootdrive_size=\"5G\"" >> "${CONF_FILE}" # boot drive |            # echo "bootdrive_size=\"5G\"" >> "${CONF_FILE}" # boot drive | ||||||
|            # echo "1stdrive_size=\"20G\"" >> "${CONF_FILE}" # for testing |            # echo "1stdrive_size=\"20G\"" >> "${CONF_FILE}" # for testing | ||||||
|            # echo "2nddrive_size=\"20G\"" >> "${CONF_FILE}" # again, for testing |            # echo "2nddrive_size=\"20G\"" >> "${CONF_FILE}" # again, for testing | ||||||
|             ;; |             ;; | ||||||
|  |           ubuntu-server) | ||||||
|  |             # 22.04+ fails on LVM build if disk size is < 10G | ||||||
|  |             # 22.04.1 fails on auto-install if TPM is disabled | ||||||
|  |             echo "disk_size=\"10G\"" >> "${CONF_FILE}" | ||||||
|  |             echo "ram=\"4G\"" >> "${CONF_FILE}" | ||||||
|  |             if [[ "${RELEASE}" == *"22.04"* ]]; then | ||||||
|  |             echo "tpm=\"on\"" >> "${CONF_FILE}" | ||||||
|  |             fi | ||||||
|  |             ;; | ||||||
|  |           vanillaos) | ||||||
|  |           ## Minimum 50G for abroot | ||||||
|  |            echo "disk_size=\"64G\"" >> "${CONF_FILE}" | ||||||
|  |            ;; | ||||||
|           zorin) |           zorin) | ||||||
|             case  ${EDITION} in |             case  ${EDITION} in | ||||||
|               education64|edulite64) |               education64|edulite64) | ||||||
|  | @ -1021,6 +1031,10 @@ EOF | ||||||
|             ;; |             ;; | ||||||
|         esac |         esac | ||||||
| 
 | 
 | ||||||
|  |         if [ "${OS}" == "ubuntu" ] && [[ ${RELEASE} == *"daily"*  ]]; then | ||||||
|  |         # wont install  lobster testing with less than 18GB | ||||||
|  |           echo "disk_size=\"32G\"" >> "${CONF_FILE}" | ||||||
|  |         fi | ||||||
|         # Enable TPM for Windows 11 |         # Enable TPM for Windows 11 | ||||||
|         if [ "${OS}" == "windows" ] && [ "${RELEASE}" -ge 11 ]; then |         if [ "${OS}" == "windows" ] && [ "${RELEASE}" -ge 11 ]; then | ||||||
|             echo "tpm=\"on\"" >> "${CONF_FILE}" |             echo "tpm=\"on\"" >> "${CONF_FILE}" | ||||||
|  | @ -1067,7 +1081,7 @@ function get_alma() { | ||||||
|     local EDITION="${1:-}" |     local EDITION="${1:-}" | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="AlmaLinux-${RELEASE}-x86_64-${EDITION}.iso" |     local ISO="AlmaLinux-${RELEASE}-x86_64-${EDITION}.iso" | ||||||
|     local URL="http://lon.mirror.rackspace.com/almalinux/${RELEASE/beta-1/beta}/isos/x86_64/" |     local URL="https://mirror.rackspace.com/almalinux/${RELEASE/beta-1/beta}/isos/x86_64/" | ||||||
|     HASH="$(wget -q -O- "${URL}/CHECKSUM" | grep "(${ISO}" | cut -d' ' -f4)" |     HASH="$(wget -q -O- "${URL}/CHECKSUM" | grep "(${ISO}" | cut -d' ' -f4)" | ||||||
|     echo "${URL}/${ISO} ${HASH}" |     echo "${URL}/${ISO} ${HASH}" | ||||||
| } | } | ||||||
|  | @ -1139,9 +1153,41 @@ function get_arcolinux() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function get_blendos() { | function get_blendos() { | ||||||
|  |     local EDITION="${1:-}" | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local URL="$(curl -s https://api.github.com/repos/blend-os/blendOS/releases  |grep 'browser_download_url'|grep ${RELEASE} | grep -o '\"http.*\.iso\"'| cut -d\" -f 2| head -1)" |     local URL="" | ||||||
|  |     case ${RELEASE} in | ||||||
|  |       23.01) | ||||||
|  |         URL="$(curl -s https://api.github.com/repos/blend-os/blendOS/releases  |grep 'browser_download_url'|grep ${RELEASE} | grep -o '\"http.*\.iso\"'| cut -d\" -f 2| head -1)" | ||||||
|         HASH=$(curl -s "${URL}.sha256sum" | cut -d' ' -f1) |         HASH=$(curl -s "${URL}.sha256sum" | cut -d' ' -f1) | ||||||
|  |         ;; | ||||||
|  |       23.04) | ||||||
|  |         case ${EDITION} in | ||||||
|  |           gnome) | ||||||
|  |             TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/blendos/files/23.04-1/${EDITION^^}/blendOS-2023.04.22-x86_64-${EDITION,,}.iso/download" 2>&1 | grep -i Location | cut -d' ' -f4) | ||||||
|  |             URL=${TMPURL%\?*} | ||||||
|  |             HASH=$(curl -s https://sourceforge.net/projects/blendos/files/${RELEASE}-1/${EDITION:-GNOME}/|grep  -o -E '\"sha1\":\".*\"'|cut -d\" -f4) | ||||||
|  |             ;; | ||||||
|  |           kde|plasma) | ||||||
|  |             local ED_DE="Plasma" | ||||||
|  |             TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/blendos/files/23.04-1/${ED_DE^}/blendOS-2023.04.22-x86_64-${ED_DE,,}.iso/download" 2>&1 | grep -i Location | cut -d' ' -f4) | ||||||
|  |             URL=${TMPURL%\?*} | ||||||
|  |             HASH=$(curl -s https://sourceforge.net/projects/blendos/files/${RELEASE}-1/Plasma/|grep  -o -E '\"sha1\":\".*\"'|cut -d\" -f4) | ||||||
|  |             ;; | ||||||
|  |         esac | ||||||
|  |         ;; | ||||||
|  |     esac | ||||||
|  |     echo "${URL} ${HASH}" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function get_vanillaos() { | ||||||
|  |   # maybe use github api and dynamism for R2.0 but for 22.10 just | ||||||
|  |   # hit their CDN | ||||||
|  |   # | ||||||
|  |   # https://cdn.vanillaos.org/assets/ISO/22.10-r8/VanillaOS-22.10-all.20230226.md5.txt | ||||||
|  |   # https://cdn.vanillaos.org/assets/ISO/22.10-r8/VanillaOS-22.10-all.20230226.sha256.txt | ||||||
|  |     local HASH=$(curl -s "https://cdn.vanillaos.org/assets/ISO/22.10-r8/VanillaOS-22.10-all.20230226.sha256.txt" | cut -d' ' -f1) | ||||||
|  |     local URL="https://cdn.vanillaos.org/assets/ISO/22.10-r8/VanillaOS-22.10-all.20230226.iso" | ||||||
|     echo "${URL} ${HASH}" |     echo "${URL} ${HASH}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1380,7 +1426,7 @@ function get_fedora() { | ||||||
|     local VARIANT="" |     local VARIANT="" | ||||||
| 
 | 
 | ||||||
|     case ${EDITION} in |     case ${EDITION} in | ||||||
|       Server|Silverblue|Workstation) VARIANT="${EDITION}";; |       Server|Kinoite|Silverblue|Sericea|Workstation) VARIANT="${EDITION}";; | ||||||
|       *) VARIANT="Spins";; |       *) VARIANT="Spins";; | ||||||
|     esac |     esac | ||||||
| 
 | 
 | ||||||
|  | @ -1458,7 +1504,7 @@ function get_garuda() { | ||||||
|   ISO=${EDITION}/latest.iso |   ISO=${EDITION}/latest.iso | ||||||
| 
 | 
 | ||||||
|   HASH="$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)" |   HASH="$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)" | ||||||
|   echo "${URL} ${HASH}" |   echo "${URL}/${ISO} ${HASH}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function get_gentoo() { | function get_gentoo() { | ||||||
|  | @ -1549,7 +1595,7 @@ function get_macos() { | ||||||
|     local CWD="" |     local CWD="" | ||||||
|     local MACRECOVERY="" |     local MACRECOVERY="" | ||||||
|     local MLB="00000000000000000" |     local MLB="00000000000000000" | ||||||
|     local OS_TYPE="latest" |     local OS_TYPE="default" | ||||||
| 
 | 
 | ||||||
|     case ${RELEASE} in |     case ${RELEASE} in | ||||||
|         lion)           #10.7 |         lion)           #10.7 | ||||||
|  | @ -1608,8 +1654,8 @@ function get_macos() { | ||||||
|     # Get firmware |     # 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/OpenCore/OpenCore.qcow2" "${VM_PATH}" | ||||||
|     web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_CODE.fd" "${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 |     if [ ! -e "${VM_PATH}/OVMF_VARS-1920x1080.fd" ]; then | ||||||
|         web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1024x768.fd" "${VM_PATH}" |         web_get "https://github.com/kholia/OSX-KVM/raw/master/OVMF_VARS-1920x1080.fd" "${VM_PATH}" | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then |     if [ ! -e "${VM_PATH}/RecoveryImage.chunklist" ]; then | ||||||
|  | @ -1711,6 +1757,16 @@ function get_openbsd() { | ||||||
|     echo "${URL}/${ISO} ${HASH}" |     echo "${URL}/${ISO} ${HASH}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function get_openindiana(){ | ||||||
|  |     local HASH="" | ||||||
|  |     local ISO="" | ||||||
|  |     local URL="" | ||||||
|  |     URL="https://dlc.openindiana.org/isos/hipster/${RELEASE}" | ||||||
|  |     ISO="OI-hipster-${EDITION}-${RELEASE}.iso" | ||||||
|  |     HASH=$(wget -q -O- "${URL}/${ISO}.sha256" |cut -d' ' -f1) | ||||||
|  |     echo "${URL}/${ISO} ${HASH}" | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function get_opensuse() { | function get_opensuse() { | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="" |     local ISO="" | ||||||
|  | @ -1776,13 +1832,18 @@ function get_rebornos() { | ||||||
| 
 | 
 | ||||||
| function get_rockylinux() { | function get_rockylinux() { | ||||||
|     local EDITION="${1:-}" |     local EDITION="${1:-}" | ||||||
|  |     if [[ "${RELEASE}" =~ ^8. ]] && [[ "${EDITION}" == "dvd" ]] | ||||||
|  |     then | ||||||
|  |       EDITION="dvd1" | ||||||
|  |     fi | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" |     local ISO="Rocky-${RELEASE}-x86_64-${EDITION}.iso" | ||||||
|     local URL="" |     local URL="" | ||||||
| 
 | 
 | ||||||
|     case ${RELEASE} in |     case ${RELEASE} in | ||||||
|       9.1) URL="https://download.rockylinux.org/pub/rocky/${RELEASE}/isos/x86_64";; |       9.1) URL="https://download.rockylinux.org/pub/rocky/9/isos/x86_64";; | ||||||
|       *)   URL="http://dl.rockylinux.org/vault/rocky/${RELEASE}/isos/x86_64/";; |       8.7) URL="https://download.rockylinux.org/pub/rocky/8/isos/x86_64";; | ||||||
|  |       *)   URL="http://dl.rockylinux.org/vault/rocky/${RELEASE}/isos/x86_64";; | ||||||
|     esac |     esac | ||||||
|     HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO})" | cut -d' ' -f4) |     HASH=$(wget -q -O- "${URL}/CHECKSUM" | grep "SHA256" | grep "${ISO})" | cut -d' ' -f4) | ||||||
|     echo "${URL}/${ISO} ${HASH}" |     echo "${URL}/${ISO} ${HASH}" | ||||||
|  | @ -1830,7 +1891,7 @@ function get_solus() { | ||||||
|     echo "${URL}/${ISO} ${HASH}" |     echo "${URL}/${ISO} ${HASH}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function get_steamos() { | function get_holoiso() { | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local DATE="20221211" |     local DATE="20221211" | ||||||
|     local ISO="HoloISO_${RELEASE}_OfflineInstaller-${DATE}_1636-x86_64.iso" |     local ISO="HoloISO_${RELEASE}_OfflineInstaller-${DATE}_1636-x86_64.iso" | ||||||
|  | @ -1875,6 +1936,33 @@ function get_truenas-core() { | ||||||
|     echo "${URL} ${HASH}" |     echo "${URL} ${HASH}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function get_ubuntu-server() { | ||||||
|  | 
 | ||||||
|  |       local HASH="" | ||||||
|  |       local ISO="" | ||||||
|  |       local URL="https://releases.ubuntu.com/${RELEASE}" | ||||||
|  | 
 | ||||||
|  |       if wget -q --spider "${URL}/SHA256SUMS"; then | ||||||
|  |           ISO=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'live-server' | grep amd64 | grep iso | cut -d'*' -f2) | ||||||
|  |           HASH=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'live-server' | grep amd64 | grep iso |cut -d' ' -f1) | ||||||
|  |       else | ||||||
|  |           ISO=$(wget -q -O- "${URL}/MD5SUMS" | grep 'live-server' | grep amd64 | grep iso | cut -d' ' -f3) | ||||||
|  |           HASH=$(wget -q -O- "${URL}/MD5SUMS" | grep 'live-server' | grep amd64 | grep iso | cut -d' ' -f1) | ||||||
|  |       fi | ||||||
|  | 
 | ||||||
|  |       if [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then | ||||||
|  |           URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current" | ||||||
|  |           ISO=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'live-server' | grep amd64 | grep iso | cut -d'*' -f2) | ||||||
|  |           HASH=$(wget -q -O- "${URL}/SHA256SUMS" | grep 'live-server' | grep amd64 | grep iso |cut -d' ' -f1) | ||||||
|  |           zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso" | ||||||
|  |           make_vm_config "${OS}-devel.iso" | ||||||
|  |       else | ||||||
|  |           web_get "${URL}/${ISO}" "${VM_PATH}" | ||||||
|  |           check_hash "${ISO}" "${HASH}" | ||||||
|  |           make_vm_config "${ISO}" | ||||||
|  |       fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function get_ubuntu() { | function get_ubuntu() { | ||||||
|     local ISO="" |     local ISO="" | ||||||
|     local HASH="" |     local HASH="" | ||||||
|  | @ -1886,6 +1974,9 @@ function get_ubuntu() { | ||||||
|     elif [ "${RELEASE}" == "daily-canary" ] && [ "${OS}" != "ubuntu" ]; then |     elif [ "${RELEASE}" == "daily-canary" ] && [ "${OS}" != "ubuntu" ]; then | ||||||
|         # daily-canary is only available for Ubuntu, switch flavours to daily-live |         # daily-canary is only available for Ubuntu, switch flavours to daily-live | ||||||
|         RELEASE="daily-live" |         RELEASE="daily-live" | ||||||
|  |     elif [ "${RELEASE}" == "daily-legacy" ] && [ "${OS}" != "ubuntu" ]; then | ||||||
|  |         # daily-legacy is only available for Ubuntu, switch flavours to daily-live | ||||||
|  |         RELEASE="daily-live" | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     if [[ "${RELEASE}" == "eol-"* ]]; then |     if [[ "${RELEASE}" == "eol-"* ]]; then | ||||||
|  | @ -1893,10 +1984,12 @@ function get_ubuntu() { | ||||||
|     elif [[ "${RELEASE}" == "jammy-daily" ]]; then |     elif [[ "${RELEASE}" == "jammy-daily" ]]; then | ||||||
|         URL="https://cdimage.ubuntu.com/${OS}/jammy/daily-live/current" |         URL="https://cdimage.ubuntu.com/${OS}/jammy/daily-live/current" | ||||||
|         VM_PATH="${OS}-jammy-live" |         VM_PATH="${OS}-jammy-live" | ||||||
| 
 |     elif [[ "${RELEASE}" == "daily-legacy" ]]; then | ||||||
|  |         URL="https://cdimage.ubuntu.com/${RELEASE}/current" | ||||||
|  |         VM_PATH="${OS}-${RELEASE}" | ||||||
|     elif [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then |     elif [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then | ||||||
|         URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current" |         URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current" | ||||||
|         VM_PATH="${OS}-daily-live" |         VM_PATH="${OS}-${RELEASE}" | ||||||
|     elif [ "${OS}" == "ubuntu" ]; then |     elif [ "${OS}" == "ubuntu" ]; then | ||||||
|         URL="https://releases.ubuntu.com/${RELEASE}" |         URL="https://releases.ubuntu.com/${RELEASE}" | ||||||
|     else |     else | ||||||
|  | @ -1910,7 +2003,6 @@ function get_ubuntu() { | ||||||
|         ISO=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f3) |         ISO=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f3) | ||||||
|         HASH=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f1) |         HASH=$(wget -q -O- "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | cut -d' ' -f1) | ||||||
|     fi |     fi | ||||||
|     #echo "${URL}/${ISO} ${HASH}" |  | ||||||
| 
 | 
 | ||||||
|     if [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then |     if [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then | ||||||
|         zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso" |         zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso" | ||||||
|  | @ -1935,35 +2027,15 @@ function get_void() { | ||||||
|     local EDITION="${1:-}" |     local EDITION="${1:-}" | ||||||
|     local HASH="" |     local HASH="" | ||||||
|     local ISO="" |     local ISO="" | ||||||
|     local URL="https://alpha.de.repo.voidlinux.org/live/${RELEASE}" |     local URL="https://alpha.de.repo.voidlinux.org/live/current" | ||||||
|     if [[ "${RELEASE}" == "current" ]]; then | 
 | ||||||
|     DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) |     DATE=$(wget -q -O- "${URL}/sha256sum.txt" | head -n1 | cut -d'.' -f1 | cut -d'-' -f4) | ||||||
|     case ${EDITION} in |     case ${EDITION} in | ||||||
|             base)      ISO="void-live-x86_64-${DATE}-base.iso";; |         glibc)      ISO="void-live-x86_64-${DATE}-base.iso";; | ||||||
|             base-musl) ISO="void-live-x86_64-musl-${DATE}-base.iso";; |         musl)       ISO="void-live-x86_64-musl-${DATE}-base.iso";; | ||||||
|             xfce)      ISO="void-live-x86_64-${DATE}-xfce.iso";; |         xfce-glibc) ISO="void-live-x86_64-${DATE}-xfce.iso";; | ||||||
|         xfce-musl)  ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; |         xfce-musl)  ISO="void-live-x86_64-musl-${DATE}-xfce.iso";; | ||||||
|     esac |     esac | ||||||
|     else |  | ||||||
|         case ${EDITION} in |  | ||||||
|             cinnamon)           ISO="void-live-x86_64-${RELEASE}-cinnamon.iso";; |  | ||||||
|             cinnamon-musl)      ISO="void-live-x86_64-musl-${RELEASE}-cinnamon.iso";; |  | ||||||
|             enlightenment)      ISO="void-live-x86_64-${RELEASE}-enlightenment.iso";; |  | ||||||
|             enlightenment-musl) ISO="void-live-x86_64-musl-${RELEASE}-enlightenment.iso";; |  | ||||||
|             gnome)              ISO="void-live-x86_64-${RELEASE}-gnome.iso";; |  | ||||||
|             gnome-musl)         ISO="void-live-x86_64-musl-${RELEASE}-gnome.iso";; |  | ||||||
|             lxde)               ISO="void-live-x86_64-${RELEASE}-lxde.iso";; |  | ||||||
|             lxde-musl)          ISO="void-live-x86_64-musl-${RELEASE}-lxde.iso";; |  | ||||||
|             lxqt)               ISO="void-live-x86_64-${RELEASE}-lxqt.iso";; |  | ||||||
|             lxqt-musl)          ISO="void-live-x86_64-musl-${RELEASE}-lxqt.iso";; |  | ||||||
|             mate)               ISO="void-live-x86_64-${RELEASE}-mate.iso";; |  | ||||||
|             mate-musl)          ISO="void-live-x86_64-musl-${RELEASE}-mate.iso";; |  | ||||||
|             xfce)               ISO="void-live-x86_64-${RELEASE}-xfce.iso";; |  | ||||||
|             xfce-musl)          ISO="void-live-x86_64-musl-${RELEASE}-xfce.iso";; |  | ||||||
|             base)               ISO="void-live-x86_64-${RELEASE}.iso";; |  | ||||||
|             base-musl)          ISO="void-live-x86_64-musl-${RELEASE}.iso";; |  | ||||||
|         esac |  | ||||||
|     fi |  | ||||||
|     HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" |     HASH="$(wget -q -O- "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" | ||||||
|     echo "${URL}/${ISO} ${HASH}" |     echo "${URL}/${ISO} ${HASH}" | ||||||
| } | } | ||||||
|  | @ -2297,92 +2369,35 @@ function unattended_windows() { | ||||||
| EOF | EOF | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function dbg_windows() { |  | ||||||
|   local DEBUG=0 |  | ||||||
|   if [ ${DEBUG} -eq 1 ]; then |  | ||||||
|     echo "${1}" |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| # Adapted from https://gist.github.com/hongkongkiwi/15a5bf16437315df256c118c163607cb |  | ||||||
| function get_windows() { | function get_windows() { | ||||||
|     # Use the API to automatically download a Windows .iso image |     # Use the iTechtics CDN to download the ISOs. | ||||||
|     # The API we were using is unmaintained and not currently functional |     # - https://www.itechtics.com/windows-10-download-iso/ | ||||||
|  |     # - https://www.itechtics.com/windows-11-download-iso/ | ||||||
|     #  0 : Prompt for a manual ISO download |     #  0 : Prompt for a manual ISO download | ||||||
|     #  1 : Use the API for automated download |     #  1 : Download automatically | ||||||
|     local API_GUIDED_DOWNLOAD=0 |     local AUTO_DOWNLOAD=1 | ||||||
| 
 |  | ||||||
|     local ARCH="x64" |  | ||||||
|     local INDEX=0 |  | ||||||
|     local LANG_CODE="en" |  | ||||||
|     local LANG_EDITION="${1}" |  | ||||||
|     local LATEST_WINDOWS_VERSION="" |  | ||||||
|     local WINDOWS_NAME="" |  | ||||||
|     local WINDOWS_ISO_URL="" |  | ||||||
|     local VERSION_ID="" |  | ||||||
|     local EDITION_ID="" |  | ||||||
|     local LANGUAGE_ID="" |  | ||||||
|     local FILE_NAME="" |  | ||||||
|     local ARCH_ID="" |  | ||||||
|     local DOWNLOAD_INFO="" |  | ||||||
|     local DOWNLOAD_ID="" |  | ||||||
|     local DOWNLOAD_URL="" |     local DOWNLOAD_URL="" | ||||||
| 
 | 
 | ||||||
|     if [ ${API_GUIDED_DOWNLOAD} -eq 1 ]; then |     if [ ${AUTO_DOWNLOAD} -eq 1 ]; then | ||||||
|         # Ignore the most recent Windows 10 release for now. |         # Ignore the most recent Windows 10 release for now. | ||||||
|         case ${RELEASE} in |         case ${RELEASE} in | ||||||
|         10) INDEX=0;; |             10) DOWNLOAD_URL="https://www.itechtics.com/?dl_id=173" | ||||||
|         11) INDEX=0;; |                 EDITION="22H2" | ||||||
|  |                 FILE_NAME="Win${RELEASE}_${EDITION}_EnglishInternational_x64v1.iso" | ||||||
|  |                 FILE_HASH="dc3982ad27e2d4e03b680630c28f824cb78bcd47" | ||||||
|  |                 ;; | ||||||
|  |             11) DOWNLOAD_URL="https://www.itechtics.com/?dl_id=168" | ||||||
|  |                 EDITION="22H2" | ||||||
|  |                 FILE_NAME="Win${RELEASE}_${EDITION}_English_x64v1.iso" | ||||||
|  |                 FILE_HASH="c5341ba26e420684468fa4d4ab434823c9d1b61f" | ||||||
|  |                 ;; | ||||||
|         esac |         esac | ||||||
| 
 | 
 | ||||||
|         echo "Getting Windows ${RELEASE} URL..." |         echo "Downloading Windows ${RELEASE} ${EDITION}..." | ||||||
|         WINDOWS_VERSIONS=$(wget -4 -q -O- "https://tb.rg-adguard.net/php/get_version.php?type_id=1" | jq '.versions | sort_by(-(.version_id | tonumber))') |  | ||||||
|         dbg_windows "${WINDOWS_VERSIONS}" |  | ||||||
|         LATEST_WINDOWS_VERSION=$(echo "${WINDOWS_VERSIONS}" | jq -c 'map(select(.name | contains("Windows '"${RELEASE}"'")))['${INDEX}']') |  | ||||||
|         dbg_windows "${LATEST_WINDOWS_VERSION}" |  | ||||||
|         WINDOWS_NAME=$(echo "${LATEST_WINDOWS_VERSION}" | jq -r .name) |  | ||||||
|         dbg_windows "${WINDOWS_NAME}" |  | ||||||
|         VERSION_ID=$(echo "${LATEST_WINDOWS_VERSION}" | jq -r .version_id) |  | ||||||
|         dbg_windows "${VERSION_ID}" |  | ||||||
| 
 |  | ||||||
|         case ${RELEASE} in |  | ||||||
|             8) EDITION_ID=$(wget -4 -q -O- "https://tb.rg-adguard.net/php/get_edition.php?version_id=${VERSION_ID}&lang=name_${LANG_CODE}" | jq -r '.editions[] | select(.name_'${LANG_CODE}'=="Windows 8.1 Pro + Core").edition_id');; |  | ||||||
|             10|11) EDITION_ID=$(wget -4 -q -O- "https://tb.rg-adguard.net/php/get_edition.php?version_id=${VERSION_ID}&lang=name_${LANG_CODE}" | jq -r '.editions[] | select(.name_'${LANG_CODE}'=="Windows '"${RELEASE}"'").edition_id');; |  | ||||||
|         esac |  | ||||||
|         dbg_windows "${EDITION_ID}" |  | ||||||
| 
 |  | ||||||
|         LANGUAGE_ID=$(wget -4 -q -O- "https://tb.rg-adguard.net/php/get_language.php?edition_id=${EDITION_ID}&lang=name_${LANG_CODE}" | jq -r '.languages[] | select(.name_'${LANG_CODE}'=="'"${LANG_EDITION}"'").language_id') |  | ||||||
|         dbg_windows "${LANGUAGE_ID}" |  | ||||||
|         ARCH_INFO=$(wget -4 -q -O- "https://tb.rg-adguard.net/php/get_arch.php?language_id=${LANGUAGE_ID}") |  | ||||||
|         dbg_windows "${ARCH_INFO}" |  | ||||||
|         FILE_NAME=$(echo "${ARCH_INFO}" | jq -r '.archs[] | select(.name | contains("'${ARCH}'")).name') |  | ||||||
|         dbg_windows "${FILE_NAME}" |  | ||||||
|         ARCH_ID=$(echo "${ARCH_INFO}" | jq -r '.archs[] | select(.name | contains("'${ARCH}'")).arch_id') |  | ||||||
|         dbg_windows "${ARCH_ID}" |  | ||||||
|         DOWNLOAD_INFO=$(wget -4 -q -O- "https://tb.rg-adguard.net/dl.php?fileName=${ARCH_ID}&lang=en") |  | ||||||
|         dbg_windows "${DOWNLOAD_INFO}" |  | ||||||
|         DOWNLOAD_SHA1=$(echo "${DOWNLOAD_INFO}" | sed -e 's/<[^>]*>//g' | grep -o -P '(?<=SHA1: ).*(?= expire)' | sed 's/Link//') |  | ||||||
|         dbg_windows "${DOWNLOAD_SHA1}" |  | ||||||
|         DOWNLOAD_ID=$(echo "${DOWNLOAD_INFO}" | grep -oP '(?<=https:\/\/tb\.rg-adguard\.net/dl\.php\?go=)[0-9a-z]+') |  | ||||||
|         dbg_windows "${DOWNLOAD_ID}" |  | ||||||
|         REDIRECT_URL="https://tb.rg-adguard.net/dl.php?go=${DOWNLOAD_ID}" |  | ||||||
|         dbg_windows "${REDIRECT_URL}" |  | ||||||
|         DOWNLOAD_URL=$(curl --head --silent --write-out "%{redirect_url}\n" --output /dev/null "${REDIRECT_URL}") |  | ||||||
|         dbg_windows "${DOWNLOAD_URL}" |  | ||||||
| 
 |  | ||||||
|         MS_BASE_URL="https://software.download.prss.microsoft.com/" |  | ||||||
|         if [[ ! ${DOWNLOAD_URL} =~ ^${MS_BASE_URL} ]]; then |  | ||||||
|             echo "Download URL not leading to Microsoft CDN" |  | ||||||
|             exit 1 |  | ||||||
|         fi |  | ||||||
| 
 |  | ||||||
|         echo "Downloading ${WINDOWS_NAME}..." |  | ||||||
|         web_get "${DOWNLOAD_URL}" "${VM_PATH}" "${FILE_NAME}" |         web_get "${DOWNLOAD_URL}" "${VM_PATH}" "${FILE_NAME}" | ||||||
| 
 | 
 | ||||||
|         # Windows 10 doesn't include a SHA1, so only check the integrity if the SHA1 is available. |         check_hash "${FILE_NAME}" "${FILE_HASH}" | ||||||
|         if [ -n "${DOWNLOAD_SHA1}" ]; then |  | ||||||
|             check_hash "${FILE_NAME}" "${DOWNLOAD_SHA1}" |  | ||||||
|         fi |  | ||||||
|     else |     else | ||||||
|         case ${RELEASE} in |         case ${RELEASE} in | ||||||
|             10) WINDOWS_ISO_URL="https://www.microsoft.com/software-download/windows10";; |             10) WINDOWS_ISO_URL="https://www.microsoft.com/software-download/windows10";; | ||||||
|  | @ -2411,7 +2426,7 @@ function get_windows() { | ||||||
|             ;; |             ;; | ||||||
|     esac |     esac | ||||||
| 
 | 
 | ||||||
|     case "${API_GUIDED_DOWNLOAD}" in |     case "${AUTO_DOWNLOAD}" in | ||||||
|         0) make_vm_config "windows-${RELEASE}.iso" "virtio-win.iso";; |         0) make_vm_config "windows-${RELEASE}.iso" "virtio-win.iso";; | ||||||
|         1) make_vm_config "${FILE_NAME}" "virtio-win.iso";; |         1) make_vm_config "${FILE_NAME}" "virtio-win.iso";; | ||||||
|     esac |     esac | ||||||
|  | @ -2470,7 +2485,6 @@ if ((BASH_VERSINFO[0] < 4)); then | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| LANGS=() | LANGS=() | ||||||
| languages_windows |  | ||||||
| 
 | 
 | ||||||
| if [ -n "${1}" ]; then | if [ -n "${1}" ]; then | ||||||
|     OS="${1,,}" |     OS="${1,,}" | ||||||
|  | @ -2599,6 +2613,11 @@ if [ -n "${2}" ]; then | ||||||
|         # macOS doesn't use create_vm() |         # macOS doesn't use create_vm() | ||||||
|         validate_release releases_macos |         validate_release releases_macos | ||||||
|         get_macos |         get_macos | ||||||
|  |     elif [[ "${OS}" == *"ubuntu-server"* ]]; then | ||||||
|  |         # (Comes before regular Ubuntu, or the code tries to download the desktop) # | ||||||
|  |         # Ubuntu doesn't use create_vm() | ||||||
|  |         validate_release releases_ubuntu-server | ||||||
|  |         get_ubuntu-server | ||||||
|     elif [[ "${OS}" == *"ubuntu"* ]]; then |     elif [[ "${OS}" == *"ubuntu"* ]]; then | ||||||
|         # Ubuntu doesn't use create_vm() |         # Ubuntu doesn't use create_vm() | ||||||
|         validate_release releases_ubuntu |         validate_release releases_ubuntu | ||||||
|  | @ -2608,20 +2627,9 @@ if [ -n "${2}" ]; then | ||||||
|         validate_release releases_deepin |         validate_release releases_deepin | ||||||
|         get_deepin |         get_deepin | ||||||
|     elif [ "${OS}" == "windows" ]; then |     elif [ "${OS}" == "windows" ]; then | ||||||
|         LANG="English International" |  | ||||||
|         if [ -n "${3}" ]; then |  | ||||||
|             LANG="${3}" |  | ||||||
|             if [[ ! ${LANGS[*]} =~ "${LANG}" ]]; then |  | ||||||
|                 echo -e "ERROR! ${LANG} is not a supported Windows language:\n" |  | ||||||
|                 for LANG in "${LANGS[@]}"; do |  | ||||||
|                   echo -n "${LANG} " |  | ||||||
|                 done |  | ||||||
|                 exit 1 |  | ||||||
|             fi |  | ||||||
|         fi |  | ||||||
|         # Windows doesn't use create_vm() |         # Windows doesn't use create_vm() | ||||||
|         validate_release releases_windows |         validate_release releases_windows | ||||||
|         get_windows "${LANG}" |         get_windows | ||||||
|     else |     else | ||||||
|         validate_release "releases_${OS}" |         validate_release "releases_${OS}" | ||||||
|         create_vm "$("get_${OS}")" |         create_vm "$("get_${OS}")" | ||||||
|  | @ -2629,6 +2637,10 @@ if [ -n "${2}" ]; then | ||||||
| else | else | ||||||
|     echo "ERROR! You must specify a release." |     echo "ERROR! You must specify a release." | ||||||
|     case ${OS} in |     case ${OS} in | ||||||
|  |       *ubuntu-server*) | ||||||
|  |         echo -n " - Releases: " | ||||||
|  |         releases_ubuntu-server | sed -Ee 's/eol-\S+//g' # hide eol releases | ||||||
|  |         ;; | ||||||
|       *ubuntu*) |       *ubuntu*) | ||||||
|         echo -n " - Releases: " |         echo -n " - Releases: " | ||||||
|         releases_ubuntu | sed -Ee 's/eol-\S+//g' # hide eol releases |         releases_ubuntu | sed -Ee 's/eol-\S+//g' # hide eol releases | ||||||
|  | @ -2647,4 +2659,3 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| # vim:tabstop=4:shiftwidth=4:expandtab | # vim:tabstop=4:shiftwidth=4:expandtab | ||||||
| 
 |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue