diff --git a/quickget b/quickget index 7fe6382..192c219 100755 --- a/quickget +++ b/quickget @@ -72,6 +72,7 @@ function pretty_name() { ubuntucinnamon) PRETTY_NAME="Ubuntu Cinnamon";; ubuntukylin) PRETTY_NAME="Ubuntu Kylin";; ubuntu-mate) PRETTY_NAME="Ubuntu MATE";; + ubuntu-server) PRETTY_NAME="Ubuntu Server";; ubuntustudio) PRETTY_NAME="Ubuntu Studio";; ubuntu-unity) PRETTY_NAME="Ubuntu Unity";; vanillaos) PRETTY_NAME="Vanilla OS";; @@ -90,6 +91,7 @@ function validate_release() { DISPLAY_NAME="$(pretty_name "${OS}")" case ${OS} in + *ubuntu-server*) RELEASE_GENERATOR="releases_ubuntu-server";; *ubuntu*) RELEASE_GENERATOR="releases_ubuntu";; *) RELEASE_GENERATOR="${1}";; esac @@ -229,6 +231,7 @@ function os_support() { ubuntucinnamon \ ubuntukylin \ ubuntu-mate \ + ubuntu-server \ ubuntustudio \ ubuntu-unity \ vanillaos \ @@ -441,6 +444,7 @@ function editions_linuxmint(){ function editions_lmde(){ echo cinnamon } + function releases_lmde(){ echo 5 } @@ -662,6 +666,14 @@ function releases_ubuntu() { fi } +function releases_ubuntu-server() { + local LTS_SUPPORT="18.04 20.04 22.04" + local INTERIM_SUPPORT="22.10 23.04" + echo ${LTS_SUPPORT} \ + ${INTERIM_SUPPORT} \ + daily-live +} + function releases_vanillaos() { echo 22.10 } @@ -933,6 +945,15 @@ EOF # echo "1stdrive_size=\"20G\"" >> "${CONF_FILE}" # 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}" @@ -1715,6 +1736,33 @@ function get_truenas-core() { 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() { local ISO="" local HASH="" @@ -1750,7 +1798,6 @@ function get_ubuntu() { 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) fi - #echo "${URL}/${ISO} ${HASH}" if [[ "${RELEASE}" == *"daily"* ]] || [ "${RELEASE}" == "dvd" ]; then zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso" @@ -2319,6 +2366,11 @@ if [ -n "${2}" ]; then # macOS doesn't use create_vm() validate_release releases_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 # Ubuntu doesn't use create_vm() validate_release releases_ubuntu @@ -2349,6 +2401,10 @@ if [ -n "${2}" ]; then else echo "ERROR! You must specify a release." case ${OS} in + *ubuntu-server*) + echo -n " - Releases: " + releases_ubuntu-server | sed -Ee 's/eol-\S+//g' # hide eol releases + ;; *ubuntu*) echo -n " - Releases: " releases_ubuntu | sed -Ee 's/eol-\S+//g' # hide eol releases