| /g' | grep "$HASH_LANG  64-bit" | grep -o -P '(?<= | ).*(?= | 
)')
        check_hash "${VM_PATH}/${FILE_NAME}" "${HASH}"
    fi
}
function get_windows() {
    if [ "${RELEASE}" == "10-ltsc" ]; then
        download_windows_server windows-10-enterprise ltsc
    elif [ "${OS}" == "windows-server" ]; then
        download_windows_server "windows-server-${RELEASE}"
    else
        download_windows_workstation "${RELEASE}"
    fi
    if [ "${OPERATION}" == "download" ]; then
        exit 0
    fi
    echo "Downloading VirtIO drivers..."
    web_get "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" "${VM_PATH}"
    rm -f "${VM_PATH}/unattended.iso"
    case ${RELEASE} in
        10|11)
            echo "Making unattended.iso"
            mkdir -p "${VM_PATH}/unattended" 2>/dev/null
            web_get https://www.spice-space.org/download/windows/spice-webdavd/spice-webdavd-x64-latest.msi "${VM_PATH}/unattended"
            web_get https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.10.0/spice-vdagent-x64-0.10.0.msi "${VM_PATH}/unattended"
            web_get https://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.22_x64.msi "${VM_PATH}/unattended"
            unattended_windows "${VM_PATH}/unattended/autounattend.xml"
            mkisofs -quiet -l -o "${VM_PATH}/unattended.iso" "${VM_PATH}/unattended/"
            ;;
    esac
    if [ -n "${FILE_NAME}" ]; then
        make_vm_config "${FILE_NAME}" "virtio-win.iso"
    else
        make_vm_config "windows-${RELEASE}.iso" "virtio-win.iso"
    fi
}
function open_homepage() {
    local URL=""
    local XDG_OPEN=""
    if [ -z "$(os_info "${1}")" ]; then
        error_specify_os
    else
        URL="$(os_info "${1}" | cut -d'|' -f 4)"
        # shellcheck disable=SC2034
        XDG_OPEN=$(xdg-open "${URL}" || sensible-browser "${URL}" || x-www-browser "${URL}" || gnome-open "${URL}")
        exit 0
    fi
}
function create_vm() {
    # shellcheck disable=SC2206
    local URL_HASH=(${1// / })
    local URL="${URL_HASH[0]}"
    local HASH="${URL_HASH[1]}"
    local ISO="${URL##*/}"
    #echo "${URL}"
    #echo "${ISO}"
    #echo "${HASH}"
    web_get "${URL}" "${VM_PATH}"
    if [ -n "${HASH}" ]; then
        check_hash "${ISO}" "${HASH}"
    fi
    case "${OS}" in
        batocera)
            if [[ ${ISO} = *".gz"* ]]; then
                gzip -d "${VM_PATH}/${ISO}"
                ISO="${ISO/.gz/}"
            fi;;
        dragonflybsd)
            #  Could be other OS iso files compressed with bzip2 or gzip
            #  but for now we'll keep this to know cases
            if [[ ${ISO} = *".bz2"* ]]; then
                bzip2 -d  "${VM_PATH}/${ISO}"
                ISO="${ISO/.bz2/}"
            fi;;
        easyos)
            if [[ ${ISO} = *".img"* ]]; then
                qemu-img convert -f raw -O qcow2 "${VM_PATH}/${ISO}" "${VM_PATH}/disk.qcow2"
                ISO="${ISO/.img/}"
            fi;;
        freedos)
            if [[ ${ISO} = *".zip"* ]]; then
                unzip -qo "${VM_PATH}/${ISO}" -d "${VM_PATH}"
                rm -f "${VM_PATH}/${ISO}"
                ISO="$(ls -1 "${VM_PATH}/"*.iso)"
            fi;;
        reactos)
            if [[ ${ISO} = *".zip"* ]]; then
                unzip -qo "${VM_PATH}/${ISO}" -d "${VM_PATH}"
                rm -f "${VM_PATH}/${ISO}"
                ISO="$(ls -1 "${VM_PATH}/"*.iso)"
            fi;;
    esac
    make_vm_config "${ISO}"
}
function help_message() {
    #shellcheck disable=SC2016
    printf '
             _      _              _
  __ _ _   _(_) ___| | ____ _  ___| |_
 / _` | | | | |/ __| |/ / _` |/ _ \ __|
| (_| | |_| | | (__|   < (_| |  __/ |_
 \__, |\__,_|_|\___|_|\_\__, |\___|\__|
    |_|                 |___/ v%s, using curl %s
--------------------------------------------------------------------------------
 Project - https://github.com/quickemu-project/quickemu
 Discord - https://wimpysworld.io/discord
--------------------------------------------------------------------------------
Usage:
  quickget