85 lines
3.2 KiB
Plaintext
85 lines
3.2 KiB
Plaintext
# Template file for 'ubuntu'
|
|
OSNAME="ubuntu"
|
|
PRETTY="Ubuntu"
|
|
BASEDOF="Debian"
|
|
DESCRIPTION="Complete desktop Linux operating system, freely available with both community and professional support"
|
|
HOMEPAGE="https://ubuntu.com"
|
|
CREDENTIALS="-"
|
|
GUEST="linux_old"
|
|
|
|
RELEASES="daily-live 24.10 24.04 22.04 20.04 18.04 16.04 14.04"
|
|
|
|
|
|
function releases_() {
|
|
local VERSION_DATA=""
|
|
local SUPPORTED_VERSIONS=()
|
|
VERSION_DATA="$(IFS=$'\n' web_pipe https://api.launchpad.net/devel/ubuntu/series | jq -r '.entries[]')"
|
|
# shellcheck disable=SC2207
|
|
SUPPORTED_VERSIONS=($(IFS=$'\n' jq -r 'select(.status=="Supported" or .status=="Current Stable Release") | .version' <<<"${VERSION_DATA}" | sort))
|
|
case "${OS}" in
|
|
ubuntu)
|
|
echo "${SUPPORTED_VERSIONS[@]}" daily-live;;
|
|
kubuntu|lubuntu|ubuntukylin|ubuntu-mate|ubuntustudio|xubuntu)
|
|
# after 16.04
|
|
echo "${SUPPORTED_VERSIONS[@]:1}" daily-live;;
|
|
ubuntu-budgie)
|
|
# after 18.04
|
|
echo "${SUPPORTED_VERSIONS[@]:2}" daily-live;;
|
|
edubuntu|ubuntu-unity|ubuntucinnamon)
|
|
# after 23.10
|
|
echo "${SUPPORTED_VERSIONS[@]:5}" daily-live;;
|
|
esac
|
|
}
|
|
|
|
function get_() {
|
|
local ISO=""
|
|
local HASH=""
|
|
local URL=""
|
|
local DATA=""
|
|
|
|
if [[ "${RELEASE}" == "daily"* ]] && [ "${OS}" == "ubuntustudio" ]; then
|
|
# Ubuntu Studio daily-live images are in the dvd directory
|
|
RELEASE="dvd"
|
|
fi
|
|
if [[ "${RELEASE}" == "jammy-daily" ]]; then
|
|
if [[ "${OS}" == "ubuntustudio" ]]; then
|
|
URL="https://cdimage.ubuntu.com/${OS}/jammy/dvd/current"
|
|
else
|
|
URL="https://cdimage.ubuntu.com/${OS}/jammy/daily-live/current"
|
|
fi
|
|
VM_PATH="${OS}-jammy-live"
|
|
elif [[ "${RELEASE}" == "daily"* ]] || [ "${RELEASE}" == "dvd" ]; then
|
|
URL="https://cdimage.ubuntu.com/${OS}/${RELEASE}/current"
|
|
VM_PATH="${OS}-${RELEASE}"
|
|
elif [ "${OS}" == "ubuntu" ]; then
|
|
URL="https://releases.ubuntu.com/${RELEASE}"
|
|
else
|
|
URL="https://cdimage.ubuntu.com/${OS}/releases/${RELEASE}/release"
|
|
fi
|
|
if web_check "${URL}/SHA256SUMS"; then
|
|
DATA=$(web_pipe "${URL}/SHA256SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | grep -v "+mac")
|
|
ISO=$(cut -d'*' -f2 <<<"${DATA}" | sed '1q;d')
|
|
HASH=$(cut -d' ' -f1 <<<"${DATA}" | sed '1q;d')
|
|
else
|
|
DATA=$(web_pipe "${URL}/MD5SUMS" | grep 'desktop\|dvd\|install' | grep amd64 | grep iso | grep -v "+mac")
|
|
ISO=$(cut -d'*' -f2 <<<"${DATA}")
|
|
HASH=$(cut -d' ' -f1 <<<"${DATA}")
|
|
fi
|
|
if [ -z "${ISO}" ] || [ -z "${HASH}" ]; then
|
|
echo "${PRETTY} ${RELEASE} is currently unavailable. Please select other OS/Release combination"
|
|
exit 1
|
|
fi
|
|
if [[ "${RELEASE}" == "daily"* ]] || [ "${RELEASE}" == "dvd" ]; then
|
|
zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso"
|
|
make_vm_config "${OS}-devel.iso"
|
|
elif [[ "${RELEASE}" == "jammy-daily" ]]; then
|
|
zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-jammy-live.iso"
|
|
make_vm_config "${OS}-jammy-live.iso"
|
|
else
|
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
|
check_hash "${ISO}" "${HASH}"
|
|
make_vm_config "${ISO}"
|
|
fi
|
|
}
|
|
|