From d7cc6e811519faf9a41e63966569acd830a7f440 Mon Sep 17 00:00:00 2001 From: Martin Wimpress Date: Thu, 9 May 2024 01:58:45 +0100 Subject: [PATCH] style(quickget): correctly indent case statements --- quickget | 1018 +++++++++++++++++++++++++++--------------------------- 1 file changed, 503 insertions(+), 515 deletions(-) diff --git a/quickget b/quickget index 4a3ee58..2f9b4ff 100755 --- a/quickget +++ b/quickget @@ -21,104 +21,104 @@ function os_info() { local INFO="" SIMPLE_NAME="${1}" case ${SIMPLE_NAME} in - #name) INFO="PrettyName|BasedOf|Credentials|Homepage|Info";; - alma) INFO="AlmaLinux|Fedora,RedHat|-|https://almalinux.org/|Community owned and governed, forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. AlmaLinux OS is binary compatible with RHEL®.";; - alpine) INFO="Alpine Linux|Independent|-|https://alpinelinux.org/|Security-oriented, lightweight Linux distribution based on musl libc and busybox.";; - android) INFO="Android x86|Independent|-|https://www.android-x86.org/|Port Android Open Source Project to x86 platform.";; - antix) INFO="Antix|Debian|-|https://antixlinux.com/|Fast, lightweight and easy to install systemd-free linux live CD distribution based on Debian Stable for Intel-AMD x86 compatible systems.";; - archcraft) INFO="Archcraft|Arch|-|https://archcraft.io/|Yet another minimal Linux distribution, based on Arch Linux.";; - archlinux) INFO="Arch Linux|Independent|-|https://archlinux.org/|Lightweight and flexible Linux® distribution that tries to Keep It Simple.";; - arcolinux) INFO="Arco Linux|Arch|-|https://arcolinux.com/|Is all about becoming an expert in linux.";; - artixlinux) INFO="Artix Linux|Arch|-|https://artixlinux.org/|The Art of Linux. Simple. Fast. Systemd-free.";; - athenaos) INFO="Athena OS|Arch|-|https://athenaos.org/|Offer a different experience than the most used pentesting distributions by providing only tools that fit with the user needs and improving the access to hacking resources and learning materials.";; - batocera) INFO="Batocera|Independent|-|https://batocera.org/|Retro-gaming distribution with the aim of turning any computer/nano computer into a gaming console during a game or permanently.";; - bazzite) INFO="Bazzite|Fedora,SteamOS|-|https://github.com/ublue-os/bazzite/|Container native gaming and a ready-to-game SteamOS like.";; - biglinux) INFO="BigLinux|unknown|-|https://www.biglinux.com.br/|Is the right choice if you want to have an easy and enriching experience with Linux. It has been perfected over more than 19 years, following our motto: 'In search of the perfect system'.";; - blendos) INFO="BlendOS|Arch|-|https://blendos.co/|A seamless blend of all Linux distributions. Allows you to have an immutable, atomic and declarative Arch Linux system, with application support from several Linux distributions & Android.";; - bodhi) INFO="Bodhi|Debian,Ubuntu|-|https://www.bodhilinux.com/|Lightweight distribution featuring the fast & fully customizable Moksha Desktop.";; - bunsenlabs) INFO="BunsenLabs|Debian|-|https://www.bunsenlabs.org/|Light-weight and easily customizable Openbox desktop. The project is a community continuation of CrunchBang Linux.";; - cachyos) INFO="CachyOS|Arch|-|https://cachyos.org/|Designed to deliver lightning-fast speeds and stability, ensuring a smooth and enjoyable computing experience every time you use it.";; - centos-stream) INFO="CentOS Stream|Fedora,RedHat|-|https://www.centos.org/centos-stream/|Continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL.";; - chimeralinux) INFO="Chimera Linux|Independent|anon:chimera root:chimera|https://chimera-linux.org/|Modern, general-purpose non-GNU Linux distribution.";; - crunchbang++) INFO="Crunchbangplusplus|Debian|-|https://www.crunchbangplusplus.org/|The classic minimal crunchbang feel, now with debian 12 bookworm.";; - debian) INFO="Debian|Independent|-|https://www.debian.org/|Complete Free Operating System with perfect level of ease of use and stability.";; - deepin) INFO="Deepin|Debian|-|https://www.deepin.org/|Beautiful UI design, intimate human-computer interaction, and friendly community environment make you feel at home.";; - devuan) INFO="Devuan|Debian|-|https://www.devuan.org/|Fork of Debian without systemd that allows users to reclaim control over their system by avoiding unnecessary entanglements and ensuring Init Freedom.";; - dragonflybsd) INFO="DragonFlyBSD|FreeBSD|-|https://www.dragonflybsd.org/|Provides an opportunity for the BSD base to grow in an entirely different direction from the one taken in the FreeBSD, NetBSD, and OpenBSD series.";; - easyos) INFO="EasyOS|Independent|-|https://easyos.org/|Experimental distribution designed from scratch to support containers.";; - edubuntu) INFO="Edubuntu|Ubuntu|-|https://www.edubuntu.org/|Stable, secure and privacy concious option for schools.";; - elementary) INFO="elementary OS|Debian,Ubuntu|-|https://elementary.io/|Thoughtful, capable, and ethical replacement for Windows and macOS.";; - endeavouros) INFO="EndeavourOS|Arch|-|https://endeavouros.com/|Provides an Arch experience without the hassle of installing it manually for both x86_64 and ARM systems.";; - endless) INFO="Endless OS|Debian|-|https://www.endlessos.org/os|Completely Free, User-Friendly Operating System Packed with Educational Tools, Games, and More.";; - fedora) INFO="Fedora|Independent|-|https://www.fedoraproject.org/|Innovative platform for hardware, clouds, and containers, built with love by you.";; - freebsd) INFO="FreeBSD|Independent|-|https://www.freebsd.org/|Operating system used to power modern servers, desktops, and embedded platforms.";; - freedos) INFO="FreeDOS|Independent|-|https://freedos.org/|DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems.";; - garuda) INFO="Garuda Linux|Arch|-|https://garudalinux.org/|Feature rich and easy to use Linux distribution.";; - gentoo) INFO="Gentoo|Independent|-|https://www.gentoo.org/|Highly flexible, source-based Linux distribution.";; - ghostbsd) INFO="GhostBSD|FreeBSD|-|https://www.ghostbsd.org/|Simple, elegant desktop BSD Operating System.";; - gnomeos) INFO="GNOME OS|Independent|-|https://os.gnome.org/|Alpha nightly bleeding edge distro of GNOME";; - guix) INFO="Guix|Independent|-|https://guix.gnu.org/|Distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users.";; - haiku) INFO="Haiku|Independent|-|https://www.haiku-os.org/|Specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.";; - holoiso) INFO="HoloISO|Arch,SteamOS|-|https://github.com/HoloISO/holoiso|Bring the Steam Decks SteamOS Holo redistribution and provide a close-to-official SteamOS experience.";; - kali) INFO="Kali|Debian|-|https://www.kali.org/|The most advanced Penetration Testing Distribution.";; - kdeneon) INFO="KDE Neon|Debian,Ubuntu|-|https://neon.kde.org/|Latest and greatest of KDE community software packaged on a rock-solid base.";; - kolibrios) INFO="KolibriOS|Independent|-|http://kolibrios.org/en/|Tiny yet incredibly powerful and fast operating system.";; - kubuntu) INFO="Kubuntu|Ubuntu|-|https://kubuntu.org/|Free, complete, and open-source alternative to Microsoft Windows and Mac OS X which contains everything you need to work, play, or share.";; - linuxlite) INFO="Linux Lite|Debian,Ubuntu|-|https://www.linuxliteos.com/|Your first simple, fast and free stop in the world of Linux.";; - linuxmint) INFO="Linux Mint|Debian,Ubuntu|-|https://linuxmint.com/|Designed to work out of the box and comes fully equipped with the apps most people need.";; - lmde) INFO="Linux Mint Debian Edition|Debian|-|https://www.linuxmint.com/download_lmde.php|Aims to be as similar as possible to Linux Mint, but without using Ubuntu. The package base is provided by Debian instead.";; - lubuntu) INFO="Lubuntu|Ubuntu|-|https://lubuntu.me/|Complete Operating System that ships the essential apps and services for daily use: office applications, PDF reader, image editor, music and video players, etc. Using lightwave lxde/lxqt.";; - mageia) INFO="Mageia|Independent|-|https://www.mageia.org/|Stable, secure operating system for desktop & server.";; - manjaro) INFO="Manjaro|Arch|-|https://manjaro.org/|Versatile, free, and open-source Linux operating system designed with a strong focus on safeguarding user privacy and offering extensive control over hardware.";; - mxlinux) INFO="MX Linux|Debian,Antix|-|https://mxlinux.org/|Designed to combine elegant and efficient desktops with high stability and solid performance.";; - netboot) INFO="netboot.xyz|iPXE|-|https://netboot.xyz/|Your favorite operating systems in one place.";; - netbsd) INFO="NetBSD|Independent|-|https://www.netbsd.org/|Free, fast, secure, and highly portable Unix-like Open Source operating system. It is available for a wide range of platforms, from large-scale servers and powerful desktop systems to handheld and embedded devices.";; - nitrux) INFO="Nitrux|Debian|-|https://nxos.org/|Powered by Debian, KDE Plasma and Frameworks, and AppImages.";; - nixos) INFO="NixOS|Independent|-|https://nixos.org/|Linux distribution based on Nix package manager, tool that takes a unique approach to package management and system configuration.";; - nwg-shell) INFO="nwg-shell|Arch|nwg:nwg|https://nwg-piotr.github.io/nwg-shell/|Arch Linux ISO with nwg-shell for sway and Hyprland";; - macos) INFO="macOS|proprietary|-|https://www.apple.com/macos/|Work and play on your Mac are even more powerful. Elevate your presence on video calls. Access information in all-new ways. Boost gaming performance. And discover even more ways to personalize your Mac.";; - openbsd) INFO="OpenBSD|Independent|-|https://www.openbsd.org/|FREE, multi-platform 4.4BSD-based UNIX-like operating system. Our efforts emphasize portability, standardization, correctness, proactive security and integrated cryptography.";; - openindiana) INFO="OpenIndiana|Solaris,OpenSolaris|-|https://www.openindiana.org/|Community supported illumos-based operating system.";; - opensuse) INFO="openSUSE|Independent|-|https://www.opensuse.org/|The makers choice for sysadmins, developers and desktop users.";; - oraclelinux) INFO="Oracle Linux|RedHat|-|https://www.oracle.com/linux/|Linux with everything required to deploy, optimize, and manage applications on-premises, in the cloud, and at the edge.";; - parrotsec) INFO="Parrot Security|Debian|parrot:parrot|https://www.parrotsec.org/|Provides a huge arsenal of tools, utilities and libraries that IT and security professionals can use to test and assess the security of their assets in a reliable, compliant and reproducible way.";; - peppermint) INFO="PeppermintOS|Debian,Devuan|-|https://peppermintos.com/|Provides a user with the opportunity to build the system that best fits their needs. While at the same time providing a functioning OS with minimum hassle out of the box.";; - popos) INFO="Pop!_OS|Ubuntu|-|https://pop.system76.com/|Operating system for STEM and creative professionals who use their computer as a tool to discover and create.";; - porteus) INFO="Porteus|Slackware|-|http://www.porteus.org/|Complete linux operating system that is optimized to run from CD, USB flash drive, hard drive, or other bootable storage media.";; - primtux) INFO="PrimTux|Ubuntu|-|https://primtux.fr/|A complete and customizable GNU/Linux operating system intended for primary school students and suitable even for older hardware.";; - pureos) INFO="PureOS|Debian|-|https://www.pureos.net/|A fully free/libre and open source GNU/Linux operating system, endorsed by the Free Software Foundation.";; - reactos) INFO="ReactOS|Independent|-|https://reactos.org/|Imagine running your favorite Windows applications and drivers in an open-source environment you can trust.";; - rebornos) INFO="RebornOS|Arch|-|https://rebornos.org/|Aiming to make Arch Linux as user friendly as possible by providing interface solutions to things you normally have to do in a terminal.";; - rockylinux) INFO="Rocky Linux|RedHat|-|https://rockylinux.org/|Open-source enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux®.";; - siduction) INFO="Siduction|Debian|-|https://siduction.org/|Operating system based on the Linux kernel and the GNU project. In addition, there are applications and libraries from Debian.";; - slackware) INFO="Slackware|Independent|-|http://www.slackware.com/|Advanced Linux operating system, designed with the twin goals of ease of use and stability as top priorities.";; - slax) INFO="Slax|Debian Slackware|-|https://www.slax.org/|Compact, fast, and modern Linux operating system that combines sleek design with modular approach. With the ability to run directly from a USB flash drive without the need for installation, Slax is truly portable and fits easily in your pocket.";; - slint) INFO="Slint|Slackware|-|https://slint.fr/|Slint is an easy-to-use, versatile, blind-friendly Linux distribution for 64-bit computers. Slint is based on Slackware and borrows tools from Salix. Maintainer: Didier Spaier.";; - slitaz) INFO="SliTaz|Independent|-|https://www.slitaz.org/en/|Simple, fast and low resource Linux OS for servers & desktops.";; - solus) INFO="Solus|Independent|-|https://getsol.us/|Designed for home computing. Every tweak enables us to deliver a cohesive computing experience.";; - sparkylinux) INFO="SparkyLinux|Debian|-|https://sparkylinux.org/|Fast, lightweight and fully customizable operating system which offers several versions for different use cases.";; - spirallinux) INFO="SpiralLinux|Debian|-|https://spirallinux.github.io/|Selection of Linux spins built from Debian GNU/Linux, with a focus on simplicity and out-of-the-box usability across all the major desktop environments.";; - tails) INFO="Tails|Debian|-|https://tails.net/|Portable operating system that protects against surveillance and censorship.";; - tinycore) INFO="Tiny Core Linux|Independent|-|http://www.tinycorelinux.net/|Highly modular based system with community build extensions.";; - trisquel) INFO="Trisquel|Debian,Ubuntu|-|https://trisquel.info/|Fully free operating system for home users, small enterprises and educational centers.";; - truenas-core) INFO="TrueNAS Core|FreeBSD|-|https://www.truenas.com/truenas-core/|World’s most popular storage OS because it gives you the power to build your own professional-grade storage system to use in a variety of data-intensive applications without any software costs.";; - truenas-scale) INFO="TrueNAS Scale|Debian|-|https://www.truenas.com/truenas-scale/|Open Source Hyperconverged Infrastructure (HCI) solution. In addition to powerful scale-out storage capabilities, SCALE adds Linux Containers and VMs (KVM) so apps run closer to data.";; - tuxedo-os) INFO="Tuxedo OS|Ubuntu|-|https://www.tuxedocomputers.com/en/|KDE Ubuntu LTS designed to go with their Linux hardware.";; - ubuntu) INFO="Ubuntu|Debian|-|https://ubuntu.com/|Complete desktop Linux operating system, freely available with both community and professional support.";; - ubuntu-budgie) INFO="Ubuntu Budgie|Ubuntu|-|https://ubuntubudgie.org/|Community developed distribution, integrating the Budgie Desktop Environment with Ubuntu at its core.";; - ubuntucinnamon) INFO="Ubuntu Cinnamon|Ubuntu|-|https://ubuntucinnamon.org/|Community-driven, featuring Linux Mint’s Cinnamon Desktop with Ubuntu at the core, packed fast and full of features, here is the most traditionally modern desktop you will ever love.";; - ubuntukylin) INFO="Ubuntu Kylin|Ubuntu|-|https://ubuntukylin.com/|Universal desktop operating system for personal computers, laptops, and embedded devices. It is dedicated to bringing a smarter user experience to users all over the world.";; - ubuntu-mate) INFO="Ubuntu MATE|Ubuntu|-|https://ubuntu-mate.org/|Stable, easy-to-use operating system with a configurable desktop environment. It is ideal for those who want the most out of their computers and prefer a traditional desktop metaphor. Using Mate desktop.";; - ubuntu-server) INFO="Ubuntu Server|Ubuntu|-|https://ubuntu.com/server|Brings economic and technical scalability to your datacentre, public or private. Whether you want to deploy an OpenStack cloud, a Kubernetes cluster or a 50,000-node render farm, Ubuntu Server delivers the best value scale-out performance available.";; - ubuntustudio) INFO="Ubuntu Studio|Ubuntu|-|https://ubuntustudio.org/|Comes preinstalled with a selection of the most common free multimedia applications available, and is configured for best performance for various purposes: Audio, Graphics, Video, Photography and Publishing.";; - ubuntu-unity) INFO="Ubuntu Unity|Ubuntu|-|https://ubuntuunity.org/|Flavor of Ubuntu featuring the Unity7 desktop environment (the default desktop environment used by Ubuntu from 2010-2017).";; - vanillaos) INFO="Vanilla OS|Debian,Ubuntu|-|https://vanillaos.org/|Designed to be a reliable and productive operating system for your daily work.";; - void) INFO="Void Linux|Independent|anon:voidlinux|https://voidlinux.org/|General purpose operating system. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources.";; - vxlinux) INFO="VX Linux|Void|-|https://vxlinux.org/|Pre-configured, secure systemd-free Plasma desktop with focus on convenience, performance and simplicity. Based on the excellent Void Linux.";; - windows) INFO="Windows|proprietary|-|https://www.microsoft.com/en-us/windows/|Whether you’re gaming, studying, running a business, or running a household, Windows helps you get it done.";; - windows-server) INFO="Windows Server|proprietary|-|https://www.microsoft.com/en-us/windows-server/|Platform for building an infrastructure of connected applications, networks, and web services.";; - xubuntu) INFO="Xubuntu|Ubuntu|-|https://xubuntu.org/|Elegant and easy to use operating system. Xubuntu comes with Xfce, which is a stable, light and configurable desktop environment.";; - zorin) INFO="Zorin OS|Ubuntu|-|https://zorin.com/os/|Alternative to Windows and macOS designed to make your computer faster, more powerful, secure, and privacy-respecting.";; + #name) INFO="PrettyName|BasedOf|Credentials|Homepage|Info";; + alma) INFO="AlmaLinux|Fedora,RedHat|-|https://almalinux.org/|Community owned and governed, forever-free enterprise Linux distribution, focused on long-term stability, providing a robust production-grade platform. AlmaLinux OS is binary compatible with RHEL®.";; + alpine) INFO="Alpine Linux|Independent|-|https://alpinelinux.org/|Security-oriented, lightweight Linux distribution based on musl libc and busybox.";; + android) INFO="Android x86|Independent|-|https://www.android-x86.org/|Port Android Open Source Project to x86 platform.";; + antix) INFO="Antix|Debian|-|https://antixlinux.com/|Fast, lightweight and easy to install systemd-free linux live CD distribution based on Debian Stable for Intel-AMD x86 compatible systems.";; + archcraft) INFO="Archcraft|Arch|-|https://archcraft.io/|Yet another minimal Linux distribution, based on Arch Linux.";; + archlinux) INFO="Arch Linux|Independent|-|https://archlinux.org/|Lightweight and flexible Linux® distribution that tries to Keep It Simple.";; + arcolinux) INFO="Arco Linux|Arch|-|https://arcolinux.com/|Is all about becoming an expert in linux.";; + artixlinux) INFO="Artix Linux|Arch|-|https://artixlinux.org/|The Art of Linux. Simple. Fast. Systemd-free.";; + athenaos) INFO="Athena OS|Arch|-|https://athenaos.org/|Offer a different experience than the most used pentesting distributions by providing only tools that fit with the user needs and improving the access to hacking resources and learning materials.";; + batocera) INFO="Batocera|Independent|-|https://batocera.org/|Retro-gaming distribution with the aim of turning any computer/nano computer into a gaming console during a game or permanently.";; + bazzite) INFO="Bazzite|Fedora,SteamOS|-|https://github.com/ublue-os/bazzite/|Container native gaming and a ready-to-game SteamOS like.";; + biglinux) INFO="BigLinux|unknown|-|https://www.biglinux.com.br/|Is the right choice if you want to have an easy and enriching experience with Linux. It has been perfected over more than 19 years, following our motto: 'In search of the perfect system'.";; + blendos) INFO="BlendOS|Arch|-|https://blendos.co/|A seamless blend of all Linux distributions. Allows you to have an immutable, atomic and declarative Arch Linux system, with application support from several Linux distributions & Android.";; + bodhi) INFO="Bodhi|Debian,Ubuntu|-|https://www.bodhilinux.com/|Lightweight distribution featuring the fast & fully customizable Moksha Desktop.";; + bunsenlabs) INFO="BunsenLabs|Debian|-|https://www.bunsenlabs.org/|Light-weight and easily customizable Openbox desktop. The project is a community continuation of CrunchBang Linux.";; + cachyos) INFO="CachyOS|Arch|-|https://cachyos.org/|Designed to deliver lightning-fast speeds and stability, ensuring a smooth and enjoyable computing experience every time you use it.";; + centos-stream) INFO="CentOS Stream|Fedora,RedHat|-|https://www.centos.org/centos-stream/|Continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL.";; + chimeralinux) INFO="Chimera Linux|Independent|anon:chimera root:chimera|https://chimera-linux.org/|Modern, general-purpose non-GNU Linux distribution.";; + crunchbang++) INFO="Crunchbangplusplus|Debian|-|https://www.crunchbangplusplus.org/|The classic minimal crunchbang feel, now with debian 12 bookworm.";; + debian) INFO="Debian|Independent|-|https://www.debian.org/|Complete Free Operating System with perfect level of ease of use and stability.";; + deepin) INFO="Deepin|Debian|-|https://www.deepin.org/|Beautiful UI design, intimate human-computer interaction, and friendly community environment make you feel at home.";; + devuan) INFO="Devuan|Debian|-|https://www.devuan.org/|Fork of Debian without systemd that allows users to reclaim control over their system by avoiding unnecessary entanglements and ensuring Init Freedom.";; + dragonflybsd) INFO="DragonFlyBSD|FreeBSD|-|https://www.dragonflybsd.org/|Provides an opportunity for the BSD base to grow in an entirely different direction from the one taken in the FreeBSD, NetBSD, and OpenBSD series.";; + easyos) INFO="EasyOS|Independent|-|https://easyos.org/|Experimental distribution designed from scratch to support containers.";; + edubuntu) INFO="Edubuntu|Ubuntu|-|https://www.edubuntu.org/|Stable, secure and privacy concious option for schools.";; + elementary) INFO="elementary OS|Debian,Ubuntu|-|https://elementary.io/|Thoughtful, capable, and ethical replacement for Windows and macOS.";; + endeavouros) INFO="EndeavourOS|Arch|-|https://endeavouros.com/|Provides an Arch experience without the hassle of installing it manually for both x86_64 and ARM systems.";; + endless) INFO="Endless OS|Debian|-|https://www.endlessos.org/os|Completely Free, User-Friendly Operating System Packed with Educational Tools, Games, and More.";; + fedora) INFO="Fedora|Independent|-|https://www.fedoraproject.org/|Innovative platform for hardware, clouds, and containers, built with love by you.";; + freebsd) INFO="FreeBSD|Independent|-|https://www.freebsd.org/|Operating system used to power modern servers, desktops, and embedded platforms.";; + freedos) INFO="FreeDOS|Independent|-|https://freedos.org/|DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems.";; + garuda) INFO="Garuda Linux|Arch|-|https://garudalinux.org/|Feature rich and easy to use Linux distribution.";; + gentoo) INFO="Gentoo|Independent|-|https://www.gentoo.org/|Highly flexible, source-based Linux distribution.";; + ghostbsd) INFO="GhostBSD|FreeBSD|-|https://www.ghostbsd.org/|Simple, elegant desktop BSD Operating System.";; + gnomeos) INFO="GNOME OS|Independent|-|https://os.gnome.org/|Alpha nightly bleeding edge distro of GNOME";; + guix) INFO="Guix|Independent|-|https://guix.gnu.org/|Distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users.";; + haiku) INFO="Haiku|Independent|-|https://www.haiku-os.org/|Specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.";; + holoiso) INFO="HoloISO|Arch,SteamOS|-|https://github.com/HoloISO/holoiso|Bring the Steam Decks SteamOS Holo redistribution and provide a close-to-official SteamOS experience.";; + kali) INFO="Kali|Debian|-|https://www.kali.org/|The most advanced Penetration Testing Distribution.";; + kdeneon) INFO="KDE Neon|Debian,Ubuntu|-|https://neon.kde.org/|Latest and greatest of KDE community software packaged on a rock-solid base.";; + kolibrios) INFO="KolibriOS|Independent|-|http://kolibrios.org/en/|Tiny yet incredibly powerful and fast operating system.";; + kubuntu) INFO="Kubuntu|Ubuntu|-|https://kubuntu.org/|Free, complete, and open-source alternative to Microsoft Windows and Mac OS X which contains everything you need to work, play, or share.";; + linuxlite) INFO="Linux Lite|Debian,Ubuntu|-|https://www.linuxliteos.com/|Your first simple, fast and free stop in the world of Linux.";; + linuxmint) INFO="Linux Mint|Debian,Ubuntu|-|https://linuxmint.com/|Designed to work out of the box and comes fully equipped with the apps most people need.";; + lmde) INFO="Linux Mint Debian Edition|Debian|-|https://www.linuxmint.com/download_lmde.php|Aims to be as similar as possible to Linux Mint, but without using Ubuntu. The package base is provided by Debian instead.";; + lubuntu) INFO="Lubuntu|Ubuntu|-|https://lubuntu.me/|Complete Operating System that ships the essential apps and services for daily use: office applications, PDF reader, image editor, music and video players, etc. Using lightwave lxde/lxqt.";; + mageia) INFO="Mageia|Independent|-|https://www.mageia.org/|Stable, secure operating system for desktop & server.";; + manjaro) INFO="Manjaro|Arch|-|https://manjaro.org/|Versatile, free, and open-source Linux operating system designed with a strong focus on safeguarding user privacy and offering extensive control over hardware.";; + mxlinux) INFO="MX Linux|Debian,Antix|-|https://mxlinux.org/|Designed to combine elegant and efficient desktops with high stability and solid performance.";; + netboot) INFO="netboot.xyz|iPXE|-|https://netboot.xyz/|Your favorite operating systems in one place.";; + netbsd) INFO="NetBSD|Independent|-|https://www.netbsd.org/|Free, fast, secure, and highly portable Unix-like Open Source operating system. It is available for a wide range of platforms, from large-scale servers and powerful desktop systems to handheld and embedded devices.";; + nitrux) INFO="Nitrux|Debian|-|https://nxos.org/|Powered by Debian, KDE Plasma and Frameworks, and AppImages.";; + nixos) INFO="NixOS|Independent|-|https://nixos.org/|Linux distribution based on Nix package manager, tool that takes a unique approach to package management and system configuration.";; + nwg-shell) INFO="nwg-shell|Arch|nwg:nwg|https://nwg-piotr.github.io/nwg-shell/|Arch Linux ISO with nwg-shell for sway and Hyprland";; + macos) INFO="macOS|proprietary|-|https://www.apple.com/macos/|Work and play on your Mac are even more powerful. Elevate your presence on video calls. Access information in all-new ways. Boost gaming performance. And discover even more ways to personalize your Mac.";; + openbsd) INFO="OpenBSD|Independent|-|https://www.openbsd.org/|FREE, multi-platform 4.4BSD-based UNIX-like operating system. Our efforts emphasize portability, standardization, correctness, proactive security and integrated cryptography.";; + openindiana) INFO="OpenIndiana|Solaris,OpenSolaris|-|https://www.openindiana.org/|Community supported illumos-based operating system.";; + opensuse) INFO="openSUSE|Independent|-|https://www.opensuse.org/|The makers choice for sysadmins, developers and desktop users.";; + oraclelinux) INFO="Oracle Linux|RedHat|-|https://www.oracle.com/linux/|Linux with everything required to deploy, optimize, and manage applications on-premises, in the cloud, and at the edge.";; + parrotsec) INFO="Parrot Security|Debian|parrot:parrot|https://www.parrotsec.org/|Provides a huge arsenal of tools, utilities and libraries that IT and security professionals can use to test and assess the security of their assets in a reliable, compliant and reproducible way.";; + peppermint) INFO="PeppermintOS|Debian,Devuan|-|https://peppermintos.com/|Provides a user with the opportunity to build the system that best fits their needs. While at the same time providing a functioning OS with minimum hassle out of the box.";; + popos) INFO="Pop!_OS|Ubuntu|-|https://pop.system76.com/|Operating system for STEM and creative professionals who use their computer as a tool to discover and create.";; + porteus) INFO="Porteus|Slackware|-|http://www.porteus.org/|Complete linux operating system that is optimized to run from CD, USB flash drive, hard drive, or other bootable storage media.";; + primtux) INFO="PrimTux|Ubuntu|-|https://primtux.fr/|A complete and customizable GNU/Linux operating system intended for primary school students and suitable even for older hardware.";; + pureos) INFO="PureOS|Debian|-|https://www.pureos.net/|A fully free/libre and open source GNU/Linux operating system, endorsed by the Free Software Foundation.";; + reactos) INFO="ReactOS|Independent|-|https://reactos.org/|Imagine running your favorite Windows applications and drivers in an open-source environment you can trust.";; + rebornos) INFO="RebornOS|Arch|-|https://rebornos.org/|Aiming to make Arch Linux as user friendly as possible by providing interface solutions to things you normally have to do in a terminal.";; + rockylinux) INFO="Rocky Linux|RedHat|-|https://rockylinux.org/|Open-source enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux®.";; + siduction) INFO="Siduction|Debian|-|https://siduction.org/|Operating system based on the Linux kernel and the GNU project. In addition, there are applications and libraries from Debian.";; + slackware) INFO="Slackware|Independent|-|http://www.slackware.com/|Advanced Linux operating system, designed with the twin goals of ease of use and stability as top priorities.";; + slax) INFO="Slax|Debian Slackware|-|https://www.slax.org/|Compact, fast, and modern Linux operating system that combines sleek design with modular approach. With the ability to run directly from a USB flash drive without the need for installation, Slax is truly portable and fits easily in your pocket.";; + slint) INFO="Slint|Slackware|-|https://slint.fr/|Slint is an easy-to-use, versatile, blind-friendly Linux distribution for 64-bit computers. Slint is based on Slackware and borrows tools from Salix. Maintainer: Didier Spaier.";; + slitaz) INFO="SliTaz|Independent|-|https://www.slitaz.org/en/|Simple, fast and low resource Linux OS for servers & desktops.";; + solus) INFO="Solus|Independent|-|https://getsol.us/|Designed for home computing. Every tweak enables us to deliver a cohesive computing experience.";; + sparkylinux) INFO="SparkyLinux|Debian|-|https://sparkylinux.org/|Fast, lightweight and fully customizable operating system which offers several versions for different use cases.";; + spirallinux) INFO="SpiralLinux|Debian|-|https://spirallinux.github.io/|Selection of Linux spins built from Debian GNU/Linux, with a focus on simplicity and out-of-the-box usability across all the major desktop environments.";; + tails) INFO="Tails|Debian|-|https://tails.net/|Portable operating system that protects against surveillance and censorship.";; + tinycore) INFO="Tiny Core Linux|Independent|-|http://www.tinycorelinux.net/|Highly modular based system with community build extensions.";; + trisquel) INFO="Trisquel|Debian,Ubuntu|-|https://trisquel.info/|Fully free operating system for home users, small enterprises and educational centers.";; + truenas-core) INFO="TrueNAS Core|FreeBSD|-|https://www.truenas.com/truenas-core/|World’s most popular storage OS because it gives you the power to build your own professional-grade storage system to use in a variety of data-intensive applications without any software costs.";; + truenas-scale) INFO="TrueNAS Scale|Debian|-|https://www.truenas.com/truenas-scale/|Open Source Hyperconverged Infrastructure (HCI) solution. In addition to powerful scale-out storage capabilities, SCALE adds Linux Containers and VMs (KVM) so apps run closer to data.";; + tuxedo-os) INFO="Tuxedo OS|Ubuntu|-|https://www.tuxedocomputers.com/en/|KDE Ubuntu LTS designed to go with their Linux hardware.";; + ubuntu) INFO="Ubuntu|Debian|-|https://ubuntu.com/|Complete desktop Linux operating system, freely available with both community and professional support.";; + ubuntu-budgie) INFO="Ubuntu Budgie|Ubuntu|-|https://ubuntubudgie.org/|Community developed distribution, integrating the Budgie Desktop Environment with Ubuntu at its core.";; + ubuntucinnamon) INFO="Ubuntu Cinnamon|Ubuntu|-|https://ubuntucinnamon.org/|Community-driven, featuring Linux Mint’s Cinnamon Desktop with Ubuntu at the core, packed fast and full of features, here is the most traditionally modern desktop you will ever love.";; + ubuntukylin) INFO="Ubuntu Kylin|Ubuntu|-|https://ubuntukylin.com/|Universal desktop operating system for personal computers, laptops, and embedded devices. It is dedicated to bringing a smarter user experience to users all over the world.";; + ubuntu-mate) INFO="Ubuntu MATE|Ubuntu|-|https://ubuntu-mate.org/|Stable, easy-to-use operating system with a configurable desktop environment. It is ideal for those who want the most out of their computers and prefer a traditional desktop metaphor. Using Mate desktop.";; + ubuntu-server) INFO="Ubuntu Server|Ubuntu|-|https://ubuntu.com/server|Brings economic and technical scalability to your datacentre, public or private. Whether you want to deploy an OpenStack cloud, a Kubernetes cluster or a 50,000-node render farm, Ubuntu Server delivers the best value scale-out performance available.";; + ubuntustudio) INFO="Ubuntu Studio|Ubuntu|-|https://ubuntustudio.org/|Comes preinstalled with a selection of the most common free multimedia applications available, and is configured for best performance for various purposes: Audio, Graphics, Video, Photography and Publishing.";; + ubuntu-unity) INFO="Ubuntu Unity|Ubuntu|-|https://ubuntuunity.org/|Flavor of Ubuntu featuring the Unity7 desktop environment (the default desktop environment used by Ubuntu from 2010-2017).";; + vanillaos) INFO="Vanilla OS|Debian,Ubuntu|-|https://vanillaos.org/|Designed to be a reliable and productive operating system for your daily work.";; + void) INFO="Void Linux|Independent|anon:voidlinux|https://voidlinux.org/|General purpose operating system. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources.";; + vxlinux) INFO="VX Linux|Void|-|https://vxlinux.org/|Pre-configured, secure systemd-free Plasma desktop with focus on convenience, performance and simplicity. Based on the excellent Void Linux.";; + windows) INFO="Windows|proprietary|-|https://www.microsoft.com/en-us/windows/|Whether you’re gaming, studying, running a business, or running a household, Windows helps you get it done.";; + windows-server) INFO="Windows Server|proprietary|-|https://www.microsoft.com/en-us/windows-server/|Platform for building an infrastructure of connected applications, networks, and web services.";; + xubuntu) INFO="Xubuntu|Ubuntu|-|https://xubuntu.org/|Elegant and easy to use operating system. Xubuntu comes with Xfce, which is a stable, light and configurable desktop environment.";; + zorin) INFO="Zorin OS|Ubuntu|-|https://zorin.com/os/|Alternative to Windows and macOS designed to make your computer faster, more powerful, secure, and privacy-respecting.";; esac echo "${INFO}" } @@ -126,8 +126,8 @@ function os_info() { function show_os_info() { while getopts ":12345" opt; do case $opt in - 1|2|3|4|5) os_info "${2}" | cut -d'|' -f "${opt}";; - *) error_not_supported_argument;; + 1|2|3|4|5) os_info "${2}" | cut -d'|' -f "${opt}";; + *) error_not_supported_argument;; esac done } @@ -160,28 +160,28 @@ function os_supported() { function error_specify_release() { 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 - ;; - *windows*) - echo -n ' - Releases: ' - "releases_${OS}" - echo -n ' - Languages: ' - "languages_${OS}" && echo "${LANGS[@]}" - ;; - *) - echo -n ' - Releases: ' - "releases_${OS}" | fold -s -w "$(tput cols)" - if [[ $(type -t "editions_${OS}") == function ]]; then - echo -n ' - Editions: ' - "editions_${OS}" | fold -s -w "$(tput cols)" - fi - ;; + *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 + ;; + *windows*) + echo -n ' - Releases: ' + "releases_${OS}" + echo -n ' - Languages: ' + "languages_${OS}" && echo "${LANGS[@]}" + ;; + *) + echo -n ' - Releases: ' + "releases_${OS}" | fold -s -w "$(tput cols)" + if [[ $(type -t "editions_${OS}") == function ]]; then + echo -n ' - Editions: ' + "editions_${OS}" | fold -s -w "$(tput cols)" + fi + ;; esac exit 1 } @@ -256,9 +256,9 @@ 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}";; + *ubuntu-server*) RELEASE_GENERATOR="releases_ubuntu-server";; + *ubuntu*) RELEASE_GENERATOR="releases_ubuntu";; + *) RELEASE_GENERATOR="${1}";; esac RELEASES=$(${RELEASE_GENERATOR}) error_not_supported_release @@ -301,9 +301,9 @@ function csv_data() { DISPLAY_NAME="$(pretty_name "${OS}")" case ${OS} in - *ubuntu-server*) FUNC="ubuntu-server";; - *ubuntu*) FUNC="ubuntu";; - *) FUNC="${OS}";; + *ubuntu-server*) FUNC="ubuntu-server";; + *ubuntu*) FUNC="ubuntu";; + *) FUNC="${OS}";; esac PNG="https://quickemu-project.github.io/quickemu-icons/png/${FUNC}/${FUNC}-quickemu-white-pinkbg.png" @@ -1205,12 +1205,12 @@ function check_hash() { hash="${2}" # Guess the hash algorithm by the hash length case ${#hash} in - 32) hash_algo=md5sum;; - 40) hash_algo=sha1sum;; - 64) hash_algo=sha256sum;; - 128) hash_algo=sha512sum;; - *) echo "WARNING! Can't guess hash algorithm, not checking ${iso} hash." - return;; + 32) hash_algo=md5sum;; + 40) hash_algo=sha1sum;; + 64) hash_algo=sha256sum;; + 128) hash_algo=sha512sum;; + *) echo "WARNING! Can't guess hash algorithm, not checking ${iso} hash." + return;; esac echo -n "Checking ${iso} with ${hash_algo}... " if ! echo "${hash} ${iso}" | ${hash_algo} --check --status; then @@ -1370,68 +1370,68 @@ function make_vm_config() { IMAGE_FILE="${1}" ISO_FILE="${2}" case "${OS}" in - batocera) - GUEST="batocera" - IMAGE_TYPE="img";; - custom) - GUEST="${CUSTOM_OS}" - IMAGE_TYPE="${CUSTOM_IMAGE_TYPE}";; - dragonflybsd) - GUEST="dragonflybsd" - IMAGE_TYPE="iso";; - easyos) - GUEST="linux" - IMAGE_TYPE="img";; - freebsd|ghostbsd) - GUEST="freebsd" - IMAGE_TYPE="iso";; - haiku) - GUEST="haiku" - IMAGE_TYPE="iso";; - freedos) - GUEST="freedos" - IMAGE_TYPE="iso";; - kolibrios) - GUEST="kolibrios" - IMAGE_TYPE="iso";; - macos) - GUEST="macos" - IMAGE_TYPE="img";; - netbsd) - GUEST="netbsd" - IMAGE_TYPE="iso";; - openbsd) - GUEST="openbsd" - IMAGE_TYPE="iso";; - openindiana) - GUEST="solaris" - IMAGE_TYPE="iso";; - reactos) - GUEST="reactos" - IMAGE_TYPE="iso";; - truenas*) - GUEST="truenas" - IMAGE_TYPE="iso";; - ubuntu*) - GUEST="linux" - IMAGE_TYPE="iso" - # If there is a point in the release, check if it is less than 16.04 - if [[ "${RELEASE}" == "*.*" ]]; then - local SHORT_RELEASE=${RELEASE//./} - if [ "${SHORT_RELEASE}" -lt 1604 ]; then - GUEST="linux_old" + batocera) + GUEST="batocera" + IMAGE_TYPE="img";; + custom) + GUEST="${CUSTOM_OS}" + IMAGE_TYPE="${CUSTOM_IMAGE_TYPE}";; + dragonflybsd) + GUEST="dragonflybsd" + IMAGE_TYPE="iso";; + easyos) + GUEST="linux" + IMAGE_TYPE="img";; + freebsd|ghostbsd) + GUEST="freebsd" + IMAGE_TYPE="iso";; + haiku) + GUEST="haiku" + IMAGE_TYPE="iso";; + freedos) + GUEST="freedos" + IMAGE_TYPE="iso";; + kolibrios) + GUEST="kolibrios" + IMAGE_TYPE="iso";; + macos) + GUEST="macos" + IMAGE_TYPE="img";; + netbsd) + GUEST="netbsd" + IMAGE_TYPE="iso";; + openbsd) + GUEST="openbsd" + IMAGE_TYPE="iso";; + openindiana) + GUEST="solaris" + IMAGE_TYPE="iso";; + reactos) + GUEST="reactos" + IMAGE_TYPE="iso";; + truenas*) + GUEST="truenas" + IMAGE_TYPE="iso";; + ubuntu*) + GUEST="linux" + IMAGE_TYPE="iso" + # If there is a point in the release, check if it is less than 16.04 + if [[ "${RELEASE}" == "*.*" ]]; then + local SHORT_RELEASE=${RELEASE//./} + if [ "${SHORT_RELEASE}" -lt 1604 ]; then + GUEST="linux_old" + fi fi - fi - ;; - windows) - GUEST="windows" - IMAGE_TYPE="iso";; - windows-server) - GUEST="windows-server" - IMAGE_TYPE="iso";; - *) - GUEST="linux" - IMAGE_TYPE="iso";; + ;; + windows) + GUEST="windows" + IMAGE_TYPE="iso";; + windows-server) + GUEST="windows-server" + IMAGE_TYPE="iso";; + *) + GUEST="linux" + IMAGE_TYPE="iso";; esac CONF_FILE="${VM_PATH}.conf" @@ -1452,75 +1452,75 @@ EOF # OS specific tweaks case ${OS} in - alma|athenaos|centos-stream|endless|garuda|gentoo|kali|nixos|oraclelinux|popos|rockylinux) - echo "disk_size=\"32G\"" >> "${CONF_FILE}";; - openindiana) - echo "boot=\"legacy\"" >> "${CONF_FILE}" - echo "disk_size=\"32G\"" >> "${CONF_FILE}";; - batocera) - echo "disk_size=\"8G\"" >> "${CONF_FILE}";; - dragonflybsd|haiku|openbsd|netbsd|slackware|slax|tails|tinycore) - echo "boot=\"legacy\"" >> "${CONF_FILE}";; - deepin) - echo "disk_size=\"64G\"" >> "${CONF_FILE}" - echo "ram=\"4G\"" >> "${CONF_FILE}" - ;; - freedos) - echo "boot=\"legacy\"" >> "${CONF_FILE}" - echo "disk_size=\"4G\"" >> "${CONF_FILE}" - echo "ram=\"256M\"" >> "${CONF_FILE}" - ;; - kolibrios) - echo "boot=\"legacy\"" >> "${CONF_FILE}" - echo "disk_size=\"2G\"" >> "${CONF_FILE}" - echo "ram=\"128M\"" >> "${CONF_FILE}" - ;; - slint) - echo "disk_size=\"50G\"" >> "${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 - # echo "bootdrive_size=\"5G\"" >> "${CONF_FILE}" # boot drive - # 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 is 50G for abroot, but a 64GB is allocated to give some headroom - echo "disk_size=\"64G\"" >> "${CONF_FILE}" - ;; - zorin) - case ${EDITION} in - education64|edulite64) + alma|athenaos|centos-stream|endless|garuda|gentoo|kali|nixos|oraclelinux|popos|rockylinux) echo "disk_size=\"32G\"" >> "${CONF_FILE}";; - esac - ;; - reactos) - echo "boot=\"legacy\"" >> "${CONF_FILE}" - echo "disk_size=\"12G\"" >> "${CONF_FILE}" - echo "ram=\"2048M\"" >> "${CONF_FILE}" - ;; - macos) - echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}" - # https://github.com/quickemu-project/quickemu/issues/438 - if [ "${RELEASE}" == "monterey" ]; then - echo "cpu_cores=2" >> "${CONF_FILE}" - fi - ;; + openindiana) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"32G\"" >> "${CONF_FILE}";; + batocera) + echo "disk_size=\"8G\"" >> "${CONF_FILE}";; + dragonflybsd|haiku|openbsd|netbsd|slackware|slax|tails|tinycore) + echo "boot=\"legacy\"" >> "${CONF_FILE}";; + deepin) + echo "disk_size=\"64G\"" >> "${CONF_FILE}" + echo "ram=\"4G\"" >> "${CONF_FILE}" + ;; + freedos) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"4G\"" >> "${CONF_FILE}" + echo "ram=\"256M\"" >> "${CONF_FILE}" + ;; + kolibrios) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"2G\"" >> "${CONF_FILE}" + echo "ram=\"128M\"" >> "${CONF_FILE}" + ;; + slint) + echo "disk_size=\"50G\"" >> "${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 + # echo "bootdrive_size=\"5G\"" >> "${CONF_FILE}" # boot drive + # 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 is 50G for abroot, but a 64GB is allocated to give some headroom + echo "disk_size=\"64G\"" >> "${CONF_FILE}" + ;; + zorin) + case ${EDITION} in + education64|edulite64) + echo "disk_size=\"32G\"" >> "${CONF_FILE}";; + esac + ;; + reactos) + echo "boot=\"legacy\"" >> "${CONF_FILE}" + echo "disk_size=\"12G\"" >> "${CONF_FILE}" + echo "ram=\"2048M\"" >> "${CONF_FILE}" + ;; + macos) + echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}" + # https://github.com/quickemu-project/quickemu/issues/438 + if [ "${RELEASE}" == "monterey" ]; then + echo "cpu_cores=2" >> "${CONF_FILE}" + fi + ;; esac if [ "${OS}" == "ubuntu" ] && [[ ${RELEASE} == *"daily"* ]]; then @@ -1686,8 +1686,8 @@ function get_bodhi() { local ISO="" local URL="https://sourceforge.net/projects/bodhilinux/files/${RELEASE}" case ${EDITION} in - standard) ISO="bodhi-${RELEASE}-64.iso";; - *) ISO="bodhi-${RELEASE}-64-${EDITION}.iso";; + standard) ISO="bodhi-${RELEASE}-64.iso";; + *) ISO="bodhi-${RELEASE}-64-${EDITION}.iso";; esac HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1) echo "${URL}/${ISO} ${HASH}" @@ -1743,7 +1743,7 @@ function get_debian() { local URL="https://cdimage.debian.org/cdimage/archive/${RELEASE}-live/amd64/iso-hybrid" DEBCURRENT=$(web_pipe "https://cdimage.debian.org/debian-cd/" | grep '\.[0-9]/' | cut -d'>' -f 9 | cut -d'/' -f 1) case "${RELEASE}" in - "${DEBCURRENT}") URL="https://cdimage.debian.org/debian-cd/${RELEASE}-live/amd64/iso-hybrid";; + "${DEBCURRENT}") URL="https://cdimage.debian.org/debian-cd/${RELEASE}-live/amd64/iso-hybrid";; esac if [ "${EDITION}" == "netinst" ]; then URL="${URL/-live/}" @@ -1776,9 +1776,9 @@ function get_devuan() { local URL="https://files.devuan.org/devuan_${RELEASE}/desktop-live" local VER="" case ${RELEASE} in - beowulf) VER="3.1.1";; - chimaera) VER="4.0.3";; - daedalus) VER="5.0.0";; + beowulf) VER="3.1.1";; + chimaera) VER="4.0.3";; + daedalus) VER="5.0.0";; esac ISO="devuan_${RELEASE}_${VER}_amd64_desktop-live.iso" HASH=$(web_pipe "${URL}/SHASUMS.txt" | grep "${ISO}" | cut_1) @@ -1882,14 +1882,10 @@ function get_freedos() { local ISO="" local URL="http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/${RELEASE}/official" case ${RELEASE} in - 1.2) - ISO="FD12CD.iso" - HASH=$(web_pipe "${URL}/FD12.sha" | grep "${ISO}" | cut_1) - ;; - 1.3) - ISO="FD13-LiveCD.zip" - HASH=$(web_pipe "${URL}/verify.txt" | grep -A 8 "sha256sum" | grep "${ISO}" | cut_1) - ;; + 1.2) ISO="FD12CD.iso" + HASH=$(web_pipe "${URL}/FD12.sha" | grep "${ISO}" | cut_1);; + 1.3) ISO="FD13-LiveCD.zip" + HASH=$(web_pipe "${URL}/verify.txt" | grep -A 8 "sha256sum" | grep "${ISO}" | cut_1);; esac echo "${URL}/${ISO} ${HASH}" } @@ -2038,43 +2034,43 @@ function get_macos() { local OS_TYPE="default" case ${RELEASE} in - lion) #10.7 - BOARD_ID="Mac-2E6FAB96566FE58C" - MLB="00000000000F25Y00";; - mountainlion) #10.8 - BOARD_ID="Mac-7DF2A3B5E5D671ED" - MLB="00000000000F65100";; - mavericks) #10.9 - BOARD_ID="Mac-F60DEB81FF30ACF6" - MLB="00000000000FNN100";; - yosemite) #10.10 - BOARD_ID="Mac-E43C1C25D4880AD6" - MLB="00000000000GDVW00";; - elcapitan) #10.11 - BOARD_ID="Mac-FFE5EF870D7BA81A" - MLB="00000000000GQRX00";; - sierra) #10.12 - BOARD_ID="Mac-77F17D7DA9285301" - MLB="00000000000J0DX00";; - high-sierra) #10.13 - BOARD_ID="Mac-BE088AF8C5EB4FA2" - MLB="00000000000J80300";; - mojave) #10.14 - BOARD_ID="Mac-7BA5B2DFE22DDD8C" - MLB="00000000000KXPG00";; - catalina) #10.15 - BOARD_ID="Mac-00BE6ED71E35EB86";; - big-sur) #11 - BOARD_ID="Mac-42FD25EABCABB274";; - monterey) #12 - BOARD_ID="Mac-E43C1C25D4880AD6";; - ventura) #13 - BOARD_ID="Mac-BE088AF8C5EB4FA2";; - sonoma) - BOARD_ID="Mac-53FDB3D8DB8CA971";; - *) echo "ERROR! Unknown release: ${RELEASE}" - releases_macos - exit 1;; + lion) #10.7 + BOARD_ID="Mac-2E6FAB96566FE58C" + MLB="00000000000F25Y00";; + mountainlion) #10.8 + BOARD_ID="Mac-7DF2A3B5E5D671ED" + MLB="00000000000F65100";; + mavericks) #10.9 + BOARD_ID="Mac-F60DEB81FF30ACF6" + MLB="00000000000FNN100";; + yosemite) #10.10 + BOARD_ID="Mac-E43C1C25D4880AD6" + MLB="00000000000GDVW00";; + elcapitan) #10.11 + BOARD_ID="Mac-FFE5EF870D7BA81A" + MLB="00000000000GQRX00";; + sierra) #10.12 + BOARD_ID="Mac-77F17D7DA9285301" + MLB="00000000000J0DX00";; + high-sierra) #10.13 + BOARD_ID="Mac-BE088AF8C5EB4FA2" + MLB="00000000000J80300";; + mojave) #10.14 + BOARD_ID="Mac-7BA5B2DFE22DDD8C" + MLB="00000000000KXPG00";; + catalina) #10.15 + BOARD_ID="Mac-00BE6ED71E35EB86";; + big-sur) #11 + BOARD_ID="Mac-42FD25EABCABB274";; + monterey) #12 + BOARD_ID="Mac-E43C1C25D4880AD6";; + ventura) #13 + BOARD_ID="Mac-BE088AF8C5EB4FA2";; + sonoma) + BOARD_ID="Mac-53FDB3D8DB8CA971";; + *) echo "ERROR! Unknown release: ${RELEASE}" + releases_macos + exit 1;; esac CWD="$(dirname "${0}")" @@ -2173,11 +2169,11 @@ function get_manjaro() { local TYPE="official" MANIFEST="$(web_pipe https://gitlab.manjaro.org/web/iso-info/-/raw/master/file-info.json)" case "${RELEASE}" in - sway) - MANIFEST="$(web_pipe https://mirror.manjaro-sway.download/manjaro-sway/release.json)" - TYPE="sway" - ;; - cinnamon|i3) TYPE="community";; + sway) + MANIFEST="$(web_pipe https://mirror.manjaro-sway.download/manjaro-sway/release.json)" + TYPE="sway" + ;; + cinnamon|i3) TYPE="community";; esac if [ "${EDITION}" == "minimal" ] && [ "${TYPE}" != "sway" ]; then @@ -2200,9 +2196,9 @@ function get_mxlinux() { local ISO="" local URL="https://sourceforge.net/projects/mx-linux/files/Final/${EDITION}" case ${EDITION} in - Xfce) ISO="MX-${RELEASE}_x64.iso";; - KDE) ISO="MX-${RELEASE}_KDE_x64.iso";; - Fluxbox) ISO="MX-${RELEASE}_fluxbox_x64.iso";; + Xfce) ISO="MX-${RELEASE}_x64.iso";; + KDE) ISO="MX-${RELEASE}_KDE_x64.iso";; + Fluxbox) ISO="MX-${RELEASE}_fluxbox_x64.iso";; esac HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1) echo "${URL}/${ISO} ${HASH}" @@ -2298,8 +2294,8 @@ function get_oraclelinux() { local VER_MIN=${RELEASE:2:1} local URL="https://yum.oracle.com/ISOS/OracleLinux/OL${VER_MAJ}/u${VER_MIN}/x86_64" case ${VER_MAJ} in - 7) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64-dvd.iso";; - *) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-x86_64-dvd.iso";; + 7) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64-dvd.iso";; + *) ISO="OracleLinux-R${VER_MAJ}-U${VER_MIN}-x86_64-dvd.iso";; esac HASH=$(web_pipe "https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64.checksum" | grep "${ISO}" | cut_1) echo "${URL}/${ISO} ${HASH}" @@ -2320,18 +2316,18 @@ function get_peppermint() { local ISO="" local URL="https://sourceforge.net/projects/peppermintos/files/isos" case ${EDITION} in - devuan-xfce) ISO="PeppermintOS-devuan_64_xfce.iso" - URL="${URL}/XFCE" - ;; - debian-xfce) ISO="PeppermintOS-Debian-64.iso" - URL="${URL}/XFCE" - ;; - devuan-gnome) ISO="PeppermintOS-devuan_64_gfb.iso" - URL="${URL}/Gnome_FlashBack" - ;; - debian-gnome) ISO="PeppermintOS-Debian_64_gfb.iso" - URL="${URL}/Gnome_FlashBack" - ;; + devuan-xfce) + ISO="PeppermintOS-devuan_64_xfce.iso" + URL="${URL}/XFCE";; + debian-xfce) + ISO="PeppermintOS-Debian-64.iso" + URL="${URL}/XFCE";; + devuan-gnome) + ISO="PeppermintOS-devuan_64_gfb.iso" + URL="${URL}/Gnome_FlashBack";; + debian-gnome) + ISO="PeppermintOS-Debian_64_gfb.iso" + URL="${URL}/Gnome_FlashBack";; esac HASH=$(web_pipe "${URL}/${ISO}-sha512.checksum" | grep "${ISO}" | cut_1) echo "${URL}/${ISO} ${HASH}" @@ -2435,14 +2431,12 @@ function get_slax() { local ISO="" local URL="" case ${EDITION} in - debian) - URL="https://ftp.fi.muni.cz/pub/linux/slax/Slax-12.x" - ISO=$(web_pipe "${URL}/md5.txt" | grep '64bit-' | cut -d' ' -f3 | tail -n1) - ;; - slackware) - URL="https://ftp.fi.muni.cz/pub/linux/slax/Slax-15.x" - ISO=$(web_pipe "${URL}/md5.txt" | grep '64bit-' | cut -d' ' -f3 | tail -n1) - ;; + debian) + URL="https://ftp.fi.muni.cz/pub/linux/slax/Slax-12.x" + ISO=$(web_pipe "${URL}/md5.txt" | grep '64bit-' | cut -d' ' -f3 | tail -n1);; + slackware) + URL="https://ftp.fi.muni.cz/pub/linux/slax/Slax-15.x" + ISO=$(web_pipe "${URL}/md5.txt" | grep '64bit-' | cut -d' ' -f3 | tail -n1);; esac HASH=$(web_pipe "${URL}/md5.txt" | grep '64bit-' | cut -d' ' -f1 | tail -n1) echo "${URL}/${ISO} ${HASH}" @@ -2479,9 +2473,9 @@ function get_sparkylinux() { 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}";; + 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=$(web_pipe "${URL}/${ISO}.allsums.txt" | head -2 | grep 'iso' | cut_1) echo "${URL}/${ISO}" "${HASH}" @@ -2522,10 +2516,10 @@ function get_trisquel() { local ISO="" local URL="https://mirrors.ocf.berkeley.edu/trisquel-images" case ${EDITION} in - mate) ISO="trisquel_${RELEASE}_amd64.iso";; - lxde) ISO="trisquel-mini_${RELEASE}_amd64.iso";; - kde) ISO="triskel_${RELEASE}_amd64.iso";; - sugar) ISO="trisquel-sugar_${RELEASE}_amd64.iso";; + mate) ISO="trisquel_${RELEASE}_amd64.iso";; + lxde) ISO="trisquel-mini_${RELEASE}_amd64.iso";; + kde) ISO="triskel_${RELEASE}_amd64.iso";; + sugar) ISO="trisquel-sugar_${RELEASE}_amd64.iso";; esac HASH=$(web_pipe "${URL}/${ISO}.sha1" | grep "${ISO}" | cut_1) echo "${URL}/${ISO} ${HASH}" @@ -2572,7 +2566,7 @@ function get_ubuntu-server() { fi case "${RELEASE}" in - 14*|16*) NAME="server";; + 14*|16*) NAME="server";; esac if web_check "${URL}/SHA256SUMS"; then @@ -2663,10 +2657,10 @@ function get_void() { local ISO="" local URL="https://repo-default.voidlinux.org/live" case ${EDITION} in - glibc) ISO="void-live-x86_64-${RELEASE}-base.iso";; - musl) ISO="void-live-x86_64-musl-${RELEASE}-base.iso";; - xfce-glibc) ISO="void-live-x86_64-${RELEASE}-xfce.iso";; - xfce-musl) ISO="void-live-x86_64-musl-${RELEASE}-xfce.iso";; + glibc) ISO="void-live-x86_64-${RELEASE}-base.iso";; + musl) ISO="void-live-x86_64-musl-${RELEASE}-base.iso";; + xfce-glibc) ISO="void-live-x86_64-${RELEASE}-xfce.iso";; + xfce-musl) ISO="void-live-x86_64-musl-${RELEASE}-xfce.iso";; esac HASH="$(web_pipe "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f4)" echo "${URL}/${RELEASE}/${ISO} ${HASH}" @@ -2978,61 +2972,61 @@ handle_curl_error() { local error_code="$1" local fatal_error_action=2 case "$error_code" in - 6) - echo "Failed to resolve Microsoft servers! Is there an Internet connection? Exiting..." - return "$fatal_error_action" - ;; - 7) - echo "Failed to contact Microsoft servers! Is there an Internet connection or is the server down?" - ;; - 8) - echo "Microsoft servers returned a malformed HTTP response!" - ;; - 22) - echo "Microsoft servers returned a failing HTTP status code!" - ;; - 23) - echo "Failed at writing Windows media to disk! Out of disk space or permission error? Exiting..." - return "$fatal_error_action" - ;; - 26) - echo "Ran out of memory during download! Exiting..." - return "$fatal_error_action" - ;; - 36) - echo "Failed to continue earlier download!" - ;; - 63) - echo "Microsoft servers returned an unexpectedly large response!" - ;; - # POSIX defines exit statuses 1-125 as usable by us - # https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_02 - $((error_code <= 125))) - # Must be some other server or network error (possibly with this specific request/file) - # This is when accounting for all possible errors in the curl manual assuming a correctly formed curl command and an HTTP(S) request, using only the curl features we're using, and a sane build - echo "Miscellaneous server or network error!" - ;; - 126 | 127 ) - echo "Curl command not found! Please install curl and try again. Exiting..." - return "$fatal_error_action" - ;; - # Exit statuses are undefined by POSIX beyond this point - *) - case "$(kill -l "$error_code")" in - # Signals defined to exist by POSIX: - # https://pubs.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html - INT) - echo "Curl was interrupted!" - ;; - # There could be other signals but these are most common - SEGV | ABRT ) - echo "Curl crashed! Failed exploitation attempt? Please report any core dumps to curl developers. Exiting..." + 6) + echo "Failed to resolve Microsoft servers! Is there an Internet connection? Exiting..." return "$fatal_error_action" ;; - *) - echo "Curl terminated due to a fatal signal!" + 7) + echo "Failed to contact Microsoft servers! Is there an Internet connection or is the server down?" ;; - esac + 8) + echo "Microsoft servers returned a malformed HTTP response!" + ;; + 22) + echo "Microsoft servers returned a failing HTTP status code!" + ;; + 23) + echo "Failed at writing Windows media to disk! Out of disk space or permission error? Exiting..." + return "$fatal_error_action" + ;; + 26) + echo "Ran out of memory during download! Exiting..." + return "$fatal_error_action" + ;; + 36) + echo "Failed to continue earlier download!" + ;; + 63) + echo "Microsoft servers returned an unexpectedly large response!" + ;; + # POSIX defines exit statuses 1-125 as usable by us + # https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_02 + $((error_code <= 125))) + # Must be some other server or network error (possibly with this specific request/file) + # This is when accounting for all possible errors in the curl manual assuming a correctly formed curl command and an HTTP(S) request, using only the curl features we're using, and a sane build + echo "Miscellaneous server or network error!" + ;; + 126 | 127 ) + echo "Curl command not found! Please install curl and try again. Exiting..." + return "$fatal_error_action" + ;; + # Exit statuses are undefined by POSIX beyond this point + *) + case "$(kill -l "$error_code")" in + # Signals defined to exist by POSIX: + # https://pubs.opengroup.org/onlinepubs/009695399/basedefs/signal.h.html + INT) + echo "Curl was interrupted!" + ;; + # There could be other signals but these are most common + SEGV | ABRT ) + echo "Curl crashed! Failed exploitation attempt? Please report any core dumps to curl developers. Exiting..." + return "$fatal_error_action" + ;; + *) + echo "Curl terminated due to a fatal signal!" + ;; + esac esac return 1 } @@ -3067,7 +3061,7 @@ function curl_windows() { local url="https://www.microsoft.com/en-us/software-download/windows$windows_version" case "$windows_version" in - 8 | 10) url="${url}ISO";; + 8 | 10) url="${url}ISO";; esac echo @@ -3111,48 +3105,48 @@ function download_windows_server() { local PRETTY_RELEASE="" case "$RELEASE" in - "10-ltsc") PRETTY_RELEASE="10 LTSC";; - "2012-r2") PRETTY_RELEASE="2012 R2";; - *) PRETTY_RELEASE="$RELEASE";; + "10-ltsc") PRETTY_RELEASE="10 LTSC";; + "2012-r2") PRETTY_RELEASE="2012 R2";; + *) PRETTY_RELEASE="$RELEASE";; esac case "$LANG" in - "English (Great Britain)") - CULTURE="en-gb" - COUNTRY="GB";; - "Chinese (Simplified)") - CULTURE="zh-cn" - COUNTRY="CN";; - "Chinese (Traditional)") - CULTURE="zh-tw" - COUNTRY="TW";; - "French") - CULTURE="fr-fr" - COUNTRY="FR";; - "German") - CULTURE="de-de" - COUNTRY="DE";; - "Italian") - CULTURE="it-it" - COUNTRY="IT";; - "Japanese") - CULTURE="ja-jp" - COUNTRY="JP";; - "Korean") - CULTURE="ko-kr" - COUNTRY="KR";; - "Portuguese (Brazil)") - CULTURE="pt-br" - COUNTRY="BR";; - "Spanish") - CULTURE="es-es" - COUNTRY="ES";; - "Russian") - CULTURE="ru-ru" - COUNTRY="RU";; - *) - CULTURE="en-us" - COUNTRY="US";; + "English (Great Britain)") + CULTURE="en-gb" + COUNTRY="GB";; + "Chinese (Simplified)") + CULTURE="zh-cn" + COUNTRY="CN";; + "Chinese (Traditional)") + CULTURE="zh-tw" + COUNTRY="TW";; + "French") + CULTURE="fr-fr" + COUNTRY="FR";; + "German") + CULTURE="de-de" + COUNTRY="DE";; + "Italian") + CULTURE="it-it" + COUNTRY="IT";; + "Japanese") + CULTURE="ja-jp" + COUNTRY="JP";; + "Korean") + CULTURE="ko-kr" + COUNTRY="KR";; + "Portuguese (Brazil)") + CULTURE="pt-br" + COUNTRY="BR";; + "Spanish") + CULTURE="es-es" + COUNTRY="ES";; + "Russian") + CULTURE="ru-ru" + COUNTRY="RU";; + *) + CULTURE="en-us" + COUNTRY="US";; esac iso_download_links="$(echo "$iso_download_page_html" | grep -o "https://go.microsoft.com/fwlink/p/?LinkID=[0-9]\+&clcid=0x[0-9a-z]\+&culture=$CULTURE&country=$COUNTRY")" || { @@ -3216,7 +3210,7 @@ function download_windows_workstation() { local url="https://www.microsoft.com/en-us/software-download/windows$windows_version" case "$windows_version" in - 8 | 10) url="${url}ISO";; + 8 | 10) url="${url}ISO";; esac local user_agent="Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0" @@ -3336,15 +3330,15 @@ function get_windows() { 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/" - ;; + 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 @@ -3474,64 +3468,58 @@ CURL_VERSION=$("${CURL}" --version | head -1 | cut -d' ' -f2) #TODO: Deprecate `list`, `list_csv`, and `list_json` in favor of `--list`, `--list-csv`, and `--list-json` case "${1}" in - -1*|-2*|-3*|-4*|-5*) - show_os_info "${1}" "${2}" - exit 0 - ;; - --download|-download) - OPERATION="download" - shift - ;; - --create-config|-create-config) - OPERATION="config" - shift - create_config "${@}" - ;; - --open-homepage|-open-homepage) - shift - open_homepage "${1}" - ;; - --version|-version) - WHERE=$(dirname "${BASH_SOURCE[0]}") - "${WHERE}/quickemu" --version - exit 0 - ;; - --help|-help|--h|-h) - help_message - exit 0 - ;; - --url|-url) - OPERATION="show" - shift - if [ -z "${1}" ]; then - for OS in $(os_support); do - (test_all "${OS}") - done + -1*|-2*|-3*|-4*|-5*) + show_os_info "${1}" "${2}" exit 0 - elif [ -z "${2}" ]; then - test_all "${1}" - exit 0 - fi - ;; - --check|-check) - OPERATION="test" - shift - if [ -z "${1}" ]; then - for OS in $(os_support); do - (test_all "${OS}") - done - exit 0 - elif [ -z "${2}" ]; then - test_all "${1}" - exit 0 - fi - ;; - --list-csv|-list-csv|list|list_csv) list_csv;; - --list-json|-list-json|list_json) list_json;; - --list|-list) list_supported;; - -*) - error_not_supported_argument - ;; + ;; + --download|-download) + OPERATION="download" + shift + ;; + --create-config|-create-config) + OPERATION="config" + shift + create_config "${@}" + ;; + --open-homepage|-open-homepage) + shift + open_homepage "${1}" + ;; + --version|-version) + WHERE=$(dirname "${BASH_SOURCE[0]}") + "${WHERE}/quickemu" --version + exit 0;; + --help|-help|--h|-h) + help_message + exit 0;; + --url|-url) + OPERATION="show" + shift + if [ -z "${1}" ]; then + for OS in $(os_support); do + (test_all "${OS}") + done + exit 0 + elif [ -z "${2}" ]; then + test_all "${1}" + exit 0 + fi;; + --check|-check) + OPERATION="test" + shift + if [ -z "${1}" ]; then + for OS in $(os_support); do + (test_all "${OS}") + done + exit 0 + elif [ -z "${2}" ]; then + test_all "${1}" + exit 0 + fi;; + --list-csv|-list-csv|list|list_csv) list_csv;; + --list-json|-list-json|list_json) list_json;; + --list|-list) list_supported;; + -*) error_not_supported_argument;; esac if [ -n "${1}" ]; then