Compare commits

...

14 Commits

Author SHA1 Message Date
Martin Wimpress d9a7f028d5
ci: update the issue template 2024-05-09 16:32:19 +01:00
Martin Wimpress b314851a3a
style: wrap more variables in braces 2024-05-09 15:55:16 +01:00
Martin Wimpress 564afeb4bc
fix: make windows 10 LTSC download work 2024-05-09 15:55:16 +01:00
Martin Wimpress 8720216f89
refactor: include show_os_info() in specify release/edition errors 2024-05-09 15:55:16 +01:00
Martin Wimpress 6841c552d0
refactor: remove basedOf from os_info() and add --show to quickget 2024-05-09 15:16:14 +01:00
Martin Wimpress afc0387f91
ci: remove list-all-info from quickget tests 2024-05-09 13:51:46 +01:00
Martin Wimpress d2b4c41c93
refactor: remove pointless indirection of cut_1 2024-05-09 12:19:45 +01:00
Martin Wimpress c7c94ef78d
fix: resolve shellcheck SC2002 and SC2207
https://www.shellcheck.net/wiki/SC2002
https://www.shellcheck.net/wiki/SC2207
2024-05-09 11:56:11 +01:00
Martin Wimpress 7a77c27772
fix: resolve shellcheck SC2001
https://www.shellcheck.net/wiki/SC2001
2024-05-09 11:33:06 +01:00
Martin Wimpress 6037e6fde3
chore: drop quote stripping from LSB_DESCRIPTION; no longer required
As only /etc/os-release is parsed, no quote stripping is required.
2024-05-09 11:29:22 +01:00
Martin Wimpress eb976793a1
fix: resolve shellcheck SC2181
https://www.shellcheck.net/wiki/SC2181
2024-05-09 11:28:14 +01:00
Martin Wimpress e494cb0250
fix: check FMA and INV TSC CPU flags are available for macOS guests 2024-05-09 11:28:14 +01:00
Martin Wimpress b820127bfe
fix: add popcnt to CPU flags to enable for macOS 2024-05-09 11:16:26 +01:00
Martin Wimpress 366fcf0604
fix: make sure a minimum of 8GB RAM is allocated to macOS and Windows 2024-05-09 11:14:03 +01:00
4 changed files with 269 additions and 264 deletions

View File

@ -1,24 +1,58 @@
#### Expected behaviour
<!--
Please fill out the following template to the best of your ability.
If you're not sure about something, feel free to ask for help in Discord or the Discussions.
The more information you provide, the easier it will be to help you.
Issues that completely ignore this template will be closed.
-->
Describe the your expected behaviour.
# Expected behavior
#### Actual behaviour
Describe your expected behavior.
Describe the actual behaviour.
## Actual behavior
#### Steps to reproduce the behaviour
Describe the actual behavior.
Outline the step to reproduce the issue you've encountered.
# Steps to reproduce the behavior
#### Quickemu output
Outline the steps to reproduce the issue you've encountered.
Run `quickemu` or `quickget` and paste the output here.
# Additional context
#### Linux Distribution & Kernel
## Quickemu output
Run the following and paste the output.
Run `quickemu` or `quickemnu` and include the output of the failure below:
<details>
<summary>Quickemu output</summary>
```text
quickemu/quickget output here
```
</details>
## System Information
**Run `quickreport` and include the output here**; if you can't run `quickreport`,
please provide the output of the following:
```bash
lsb_release --all
uname -a
clear && \
echo -e "Ver:\t$(quickemu --version)" && \
echo -e "Distro:\t$(grep PRETTY_NAME /etc/os-release | cut -d'"' -f2)" && \
echo -e "Kernel:\t$(uname -s -r -m)" && \
echo -e "Memory:\t$(free --si -h | awk '/Mem:/{print $2}')" && \
lspci | grep -i vga | cut -d':' -f3 && echo && \
curl --version && echo && \
qemu-system-"$(uname -m)" -version | head -1 && \
qemu-system-"$(uname -m)" -cpu help && echo && \
lscpu | tee quickreport.txt
```
<details>
<summary>Quickreport output</summary>
```text
quickreport output here
```
</details>

View File

@ -35,25 +35,6 @@ jobs:
name: supported
path: results/supported.txt
list-all-info:
name: "List all OS info "
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Show info about all OS
run: |
export TERM=xterm-256color
mkdir -p results
for os in $(./quickget | sed '/^$/q' | tail -n +3); do
./quickget -12345 "${os}" | tee -a results/infos.txt
done
echo -e "\nResults:"
echo -e "- OS Info URLs: $(grep -c http results/infos.txt)"
- uses: actions/upload-artifact@v4
with:
name: infos
path: results/infos.txt
list-all-urls:
needs: [list-all-supported]
name: "List all URLs 🔗"
@ -109,7 +90,7 @@ jobs:
path: results/failed.txt
upload-artifacts:
needs: [list-all-info, list-all-urls, check-all-urls]
needs: [list-all-urls, check-all-urls]
name: "Uploading artifacts"
runs-on: ubuntu-22.04
steps:

View File

@ -249,8 +249,6 @@ function vm_boot() {
if [ -e /etc/os-release ]; then
LSB_DESCRIPTION=$(grep PRETTY_NAME /etc/os-release | cut -d'"' -f2)
fi
# Strip quotes from LSB_DESCRIPTION
LSB_DESCRIPTION="$(echo "${LSB_DESCRIPTION}" | sed 's/"//g')"
echo "Quickemu ${VERSION} using ${QEMU} v${QEMU_VER_LONG}"
echo " - Host: ${LSB_DESCRIPTION} running ${KERNEL_NAME} ${KERNEL_VER} ${KERNEL_NODE}"
@ -333,7 +331,7 @@ function vm_boot() {
echo ", ${RAM_VM} RAM"
if [ "${guest_os}" == "macos" ] || [ "${guest_os}" == "windows" ] || [ "${guest_os}" == "windows-server" ]; then
if [ "${RAM_VM//G/}" -lt 4 ]; then
if [ "${RAM_VM//G/}" -lt 8 ]; then
echo "ERROR! You have insufficient RAM to run ${guest_os} in a VM"
exit 1
fi
@ -514,15 +512,18 @@ function vm_boot() {
esac
;;
macos)
# https://www.nicksherlock.com/2020/04/installing-macos-catalina-on-proxmox-with-opencore/
# https://www.nicksherlock.com/2022/10/installing-macos-13-ventura-on-proxmox/
# noTSX stops cpuid errors https://duckduckgo.com/?t=ffab&q=CPUID.07H%3AEBX.rtm+%5Bbit+11%5D&ia=web also cited by NickSherlock for Ventura install
# Penryn https://github.com/search?q=repo%3Akholia%2FOSX-KVM%20%20GenuineIntel&type=code
# https://en.wikipedia.org/wiki/MacOS_version_history#Releases
# quickget current list: mojave catalina big-sur monterey ventura sonoma
# A CPU with fma is required for Metal support
# A CPU with invtsc is required for macOS to boot
# A CPU with SSE4.1 support is required for >= macOS Sierra
# A CPU with SSE4.2 support is required for >= macOS Catalina
# A CPU with AVX2 support is required for >= macOS Ventura
if ! check_cpu_flag fma && ! check_cpu_flag invtsc; then
echo "ERROR! macOS requires a CPU with FMA and INV TSC support."
exit 1
fi
# TODO: Investigate if hosts with an Intel CPU can just use `-cpu host`
case ${macos_release} in
ventura|sonoma)
if check_cpu_flag sse4_2 && check_cpu_flag avx2; then
@ -547,13 +548,8 @@ function vm_boot() {
fi;;
esac
# https://www.techpowerup.com/cpu-specs/xeon-w-2140b.c2953 8 cores 16 threads # skylake server
# https://en.wikipedia.org/wiki/IMac_Pro#Technical_specifications Orig: High Sierra Max: Sonoma
# https://en.wikipedia.org/wiki/MacOS#Hardware_compatibility needs 8GB RAM
# https://qemu.readthedocs.io/en/v9.0.0/system/qemu-cpu-models.html#important-cpu-features-for-amd-x86-hosts
# https://www.reddit.com/r/hackintosh/comments/141wnjk/state_of_macos_14_sonoma_on_x86/
for FLAG in abm adx aes amd-ssbd bmi1 bmi2 cx8 eist ept f16c fma invtsc \
mmx movbe mpx pdpe1gb smep vaes vbmi2 vpclmulqdq \
mmx movbe mpx pdpe1gb popcnt smep vaes vbmi2 vpclmulqdq \
xgetbv1 xsave xsaveopt; do
if check_cpu_flag "${FLAG}"; then
CPU+=",+${FLAG}"
@ -1473,28 +1469,30 @@ function viewer_param_check() {
function parse_ports_from_file {
local FILE="${VMDIR}/${VMNAME}.ports"
local host_name=""
local port_name=""
local port_number=""
# parse ports
# shellcheck disable=SC2207
local port_name=( $(cat "${FILE}" | cut -d',' -f 1) )
# shellcheck disable=SC2207
local port_number=( $(cat "${FILE}" | cut -d',' -f 2) )
# shellcheck disable=SC2207
local host_name=( $(cat "${FILE}" | gawk 'FS="," {print $3,"."}') )
# Loop over each line in the file
while IFS= read -r CONF || [ -n "${CONF}" ]; do
echo "Processing line: ${CONF}"
# parse ports
port_name=$(echo "${CONF}" | cut -d',' -f 1)
port_number=$(echo "${CONF}" | cut -d',' -f 2)
host_name=$(echo "${CONF}" | awk 'FS="," {print $3,"."}')
for ((i=0; i<${#port_name[@]}; i++)); do
if [ "${port_name[$i]}" == "ssh" ]; then
SSH_PORT="${port_number[$i]}"
elif [ "${port_name[$i]}" == "spice" ]; then
SPICE_PORT="${port_number[$i]}"
elif [ "${port_name[$i]}" == "monitor-telnet" ]; then
MONITOR_TELNET_PORT="${port_number[$i]}"
MONITOR_TELNET_HOST="${host_name[$i]}"
elif [ "${port_name[$i]}" == "serial-telnet" ]; then
SERIAL_TELNET_PORT="${port_number[$i]}"
SERIAL_TELNET_HOST="${host_name[$i]}"
if [ "${port_name}" == "ssh" ]; then
SSH_PORT="${port_number}"
elif [ "${port_name}" == "spice" ]; then
SPICE_PORT="${port_number}"
elif [ "${port_name}" == "monitor-telnet" ]; then
MONITOR_TELNET_PORT="${port_number}"
MONITOR_TELNET_HOST="${host_name}"
elif [ "${port_name}" == "serial-telnet" ]; then
SERIAL_TELNET_PORT="${port_number}"
SERIAL_TELNET_HOST="${host_name}"
fi
done
done < "${FILE}"
}
function is_numeric {
@ -1927,8 +1925,7 @@ if [ -n "${VM}" ] && [ -e "${VM}" ]; then
VM_UP=0
if [ -r "${VMDIR}/${VMNAME}.pid" ]; then
VM_PID=$(head -c50 "${VMDIR}/${VMNAME}.pid")
kill -0 ${VM_PID} > /dev/null 2>&1
if [ $? -eq 0 ]; then
if kill -0 "${VM_PID}" > /dev/null 2>&1; then
echo "VM already started!"
VM_UP=1
fi

387
quickget
View File

@ -11,134 +11,128 @@ function cleanup() {
fi
}
# Get string before first whitespace (HASH)
function cut_1() {
cut -d' ' -f1
}
function os_info() {
local SIMPLE_NAME=""
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/|Worlds 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 Mints 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 youre 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|Credentials|Homepage|Info";;
alma) INFO="AlmaLinux|-|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|-|https://alpinelinux.org/|Security-oriented, lightweight Linux distribution based on musl libc and busybox.";;
android) INFO="Android x86|-|https://www.android-x86.org/|Port Android Open Source Project to x86 platform.";;
antix) INFO="Antix|-|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|-|https://archcraft.io/|Yet another minimal Linux distribution, based on Arch Linux.";;
archlinux) INFO="Arch Linux|-|https://archlinux.org/|Lightweight and flexible Linux® distribution that tries to Keep It Simple.";;
arcolinux) INFO="Arco Linux|-|https://arcolinux.com/|Is all about becoming an expert in linux.";;
artixlinux) INFO="Artix Linux|-|https://artixlinux.org/|The Art of Linux. Simple. Fast. Systemd-free.";;
athenaos) INFO="Athena OS|-|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|-|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|-|https://github.com/ublue-os/bazzite/|Container native gaming and a ready-to-game SteamOS like.";;
biglinux) INFO="BigLinux|-|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|-|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|-|https://www.bodhilinux.com/|Lightweight distribution featuring the fast & fully customizable Moksha Desktop.";;
bunsenlabs) INFO="BunsenLabs|-|https://www.bunsenlabs.org/|Light-weight and easily customizable Openbox desktop. The project is a community continuation of CrunchBang Linux.";;
cachyos) INFO="CachyOS|-|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|-|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|anon:chimera root:chimera|https://chimera-linux.org/|Modern, general-purpose non-GNU Linux distribution.";;
crunchbang++) INFO="Crunchbangplusplus|-|https://www.crunchbangplusplus.org/|The classic minimal crunchbang feel, now with debian 12 bookworm.";;
debian) INFO="Debian|-|https://www.debian.org/|Complete Free Operating System with perfect level of ease of use and stability.";;
deepin) INFO="Deepin|-|https://www.deepin.org/|Beautiful UI design, intimate human-computer interaction, and friendly community environment make you feel at home.";;
devuan) INFO="Devuan|-|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|-|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|-|https://easyos.org/|Experimental distribution designed from scratch to support containers.";;
edubuntu) INFO="Edubuntu|-|https://www.edubuntu.org/|Stable, secure and privacy concious option for schools.";;
elementary) INFO="elementary OS|-|https://elementary.io/|Thoughtful, capable, and ethical replacement for Windows and macOS.";;
endeavouros) INFO="EndeavourOS|-|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|-|https://www.endlessos.org/os|Completely Free, User-Friendly Operating System Packed with Educational Tools, Games, and More.";;
fedora) INFO="Fedora|-|https://www.fedoraproject.org/|Innovative platform for hardware, clouds, and containers, built with love by you.";;
freebsd) INFO="FreeBSD|-|https://www.freebsd.org/|Operating system used to power modern servers, desktops, and embedded platforms.";;
freedos) INFO="FreeDOS|-|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|-|https://garudalinux.org/|Feature rich and easy to use Linux distribution.";;
gentoo) INFO="Gentoo|-|https://www.gentoo.org/|Highly flexible, source-based Linux distribution.";;
ghostbsd) INFO="GhostBSD|-|https://www.ghostbsd.org/|Simple, elegant desktop BSD Operating System.";;
gnomeos) INFO="GNOME OS|-|https://os.gnome.org/|Alpha nightly bleeding edge distro of GNOME";;
guix) INFO="Guix|-|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|-|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|-|https://github.com/HoloISO/holoiso|Bring the Steam Decks SteamOS Holo redistribution and provide a close-to-official SteamOS experience.";;
kali) INFO="Kali|-|https://www.kali.org/|The most advanced Penetration Testing Distribution.";;
kdeneon) INFO="KDE Neon|-|https://neon.kde.org/|Latest and greatest of KDE community software packaged on a rock-solid base.";;
kolibrios) INFO="KolibriOS|-|http://kolibrios.org/en/|Tiny yet incredibly powerful and fast operating system.";;
kubuntu) INFO="Kubuntu|-|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|-|https://www.linuxliteos.com/|Your first simple, fast and free stop in the world of Linux.";;
linuxmint) INFO="Linux Mint|-|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|-|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|-|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|-|https://www.mageia.org/|Stable, secure operating system for desktop & server.";;
manjaro) INFO="Manjaro|-|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|-|https://mxlinux.org/|Designed to combine elegant and efficient desktops with high stability and solid performance.";;
netboot) INFO="netboot.xyz|-|https://netboot.xyz/|Your favorite operating systems in one place.";;
netbsd) INFO="NetBSD|-|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|-|https://nxos.org/|Powered by Debian, KDE Plasma and Frameworks, and AppImages.";;
nixos) INFO="NixOS|-|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|nwg:nwg|https://nwg-piotr.github.io/nwg-shell/|Arch Linux ISO with nwg-shell for sway and Hyprland";;
macos) INFO="macOS|-|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|-|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|-|https://www.openindiana.org/|Community supported illumos-based operating system.";;
opensuse) INFO="openSUSE|-|https://www.opensuse.org/|The makers choice for sysadmins, developers and desktop users.";;
oraclelinux) INFO="Oracle Linux|-|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|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|-|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|-|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|-|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|-|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|-|https://www.pureos.net/|A fully free/libre and open source GNU/Linux operating system, endorsed by the Free Software Foundation.";;
reactos) INFO="ReactOS|-|https://reactos.org/|Imagine running your favorite Windows applications and drivers in an open-source environment you can trust.";;
rebornos) INFO="RebornOS|-|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|-|https://rockylinux.org/|Open-source enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux®.";;
siduction) INFO="Siduction|-|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|-|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|-|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|-|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|-|https://www.slitaz.org/en/|Simple, fast and low resource Linux OS for servers & desktops.";;
solus) INFO="Solus|-|https://getsol.us/|Designed for home computing. Every tweak enables us to deliver a cohesive computing experience.";;
sparkylinux) INFO="SparkyLinux|-|https://sparkylinux.org/|Fast, lightweight and fully customizable operating system which offers several versions for different use cases.";;
spirallinux) INFO="SpiralLinux|-|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|-|https://tails.net/|Portable operating system that protects against surveillance and censorship.";;
tinycore) INFO="Tiny Core Linux|-|http://www.tinycorelinux.net/|Highly modular based system with community build extensions.";;
trisquel) INFO="Trisquel-|https://trisquel.info/|Fully free operating system for home users, small enterprises and educational centers.";;
truenas-core) INFO="TrueNAS Core|-|https://www.truenas.com/truenas-core/|Worlds 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|-|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|-|https://www.tuxedocomputers.com/en/|KDE Ubuntu LTS designed to go with their Linux hardware.";;
ubuntu) INFO="Ubuntu|-|https://ubuntu.com/|Complete desktop Linux operating system, freely available with both community and professional support.";;
ubuntu-budgie) INFO="Ubuntu Budgie|-|https://ubuntubudgie.org/|Community developed distribution, integrating the Budgie Desktop Environment with Ubuntu at its core.";;
ubuntucinnamon) INFO="Ubuntu Cinnamon|-|https://ubuntucinnamon.org/|Community-driven, featuring Linux Mints 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|-|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|-|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|-|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|-|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|-|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|-|https://vanillaos.org/|Designed to be a reliable and productive operating system for your daily work.";;
void) INFO="Void Linux|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|-|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|-|https://www.microsoft.com/en-us/windows/|Whether youre gaming, studying, running a business, or running a household, Windows helps you get it done.";;
windows-server) INFO="Windows Server|-|https://www.microsoft.com/en-us/windows-server/|Platform for building an infrastructure of connected applications, networks, and web services.";;
xubuntu) INFO="Xubuntu|-|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|-|https://zorin.com/os/|Alternative to Windows and macOS designed to make your computer faster, more powerful, secure, and privacy-respecting.";;
esac
echo "${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;;
esac
done
echo
echo -e "$(os_info "${1}" | cut -d'|' -f 1)"
echo -e " - Credentials:\t$(os_info "${1}" | cut -d'|' -f 2)"
echo -e " - Website:\t$(os_info "${1}" | cut -d'|' -f 3)"
echo -e " - Description:\t$(os_info "${1}" | cut -d'|' -f 4)"
}
function pretty_name() {
show_os_info -1 "${1}"
os_info "${1}" | cut -d'|' -f 1
}
# Just in case quickget want use it
function os_homepage() {
show_os_info -4 "${1}"
os_info "${1}" | cut -d'|' -f 4
}
function error_specify_os() {
@ -158,45 +152,40 @@ function os_supported() {
}
function error_specify_release() {
echo "ERROR! You must specify a release."
show_os_info "${OS}"
case ${OS} in
*ubuntu-server*)
echo -n ' - Releases: '
echo -en " - Releases:\t"
releases_ubuntu-server | sed -Ee 's/eol-\S+//g' # hide eol releases
;;
*ubuntu*)
echo -n ' - Releases: '
echo -en " - Releases:\t"
releases_ubuntu | sed -Ee 's/eol-\S+//g' # hide eol releases
;;
*windows*)
echo -n ' - Releases: '
echo -en " - Releases:\t"
"releases_${OS}"
echo -n ' - Languages: '
"languages_${OS}" && echo "${LANGS[@]}"
echo -en " - Languages:\t"
"languages_${OS}"
echo "${LANGS[@]}"
;;
*)
echo -n ' - Releases: '
echo -en " - Releases:\t"
"releases_${OS}" | fold -s -w "$(tput cols)"
if [[ $(type -t "editions_${OS}") == function ]]; then
echo -n ' - Editions: '
echo -en " - Editions:\t"
"editions_${OS}" | fold -s -w "$(tput cols)"
fi
;;
esac
echo -e "\nERROR! You must specify a release."
exit 1
}
function error_specify_edition() {
echo -en "ERROR! You must specify an edition.\n - Editions: "
#TODO ERROR here
"editions_${OS}"
exit 1
}
#TODO: Not yet used!
function error_specify_path() {
echo "ERROR! You must specify path."
error_specify_os
show_os_info "${OS}"
echo -e " - Editions:\t$("editions_${OS}" | fold -s -w "$(tput cols)")"
echo -e "\nERROR! You must specify an edition."
exit 1
}
@ -425,7 +414,7 @@ function test_all() {
if [[ $(type -t "editions_${OS}") == function ]]; then
for EDITION in $(editions_"${OS}"); do
validate_release releases_"${OS}"
URL=$(get_"${OS}" | cut_1 | head -1)
URL=$(get_"${OS}" | cut -d' ' -f1 | head -1)
if [ "${OPERATION}" == "show" ]; then
test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}"
elif [ "${OPERATION}" == "test" ]; then
@ -454,7 +443,7 @@ function test_all() {
(get_ubuntu)
else
validate_release releases_"${OS}"
URL=$(get_"${OS}" | cut_1 | head -1)
URL=$(get_"${OS}" | cut -d' ' -f1 | head -1)
if [ "${OPERATION}" == "show" ]; then
test_result "${OS}" "${RELEASE}" "${EDITION}" "${URL}"
elif [ "${OPERATION}" == "test" ]; then
@ -1088,7 +1077,7 @@ function editions_trisquel() {
}
function releases_truenas() {
if [[ $OS == truenas ]] ; then
if [[ ${OS} == truenas ]] ; then
echo "ERROR! The supported TrueNAS OS values are truenas-core or truenas-scale"
exit 1;
fi
@ -1604,7 +1593,7 @@ function get_antix() {
full-*) ISO+="_x64-full.iso";;
net-*) ISO+="-net_x64-net.iso";;
esac
HASH=$(web_pipe "${URL}/${README}.txt" | grep "${ISO}" | cut_1 | head -1)
HASH=$(web_pipe "${URL}/${README}.txt" | grep "${ISO}" | cut -d' ' -f1 | head -1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1628,7 +1617,7 @@ function get_arcolinux() {
local HASH=""
local ISO="arcolinux${EDITION:0:1}-${RELEASE}-x86_64.iso"
local URL="https://mirror.accum.se/mirror/arcolinux.info/iso/${RELEASE}"
HASH=$(web_pipe "${URL}/${ISO}.sha1" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha1" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1645,7 +1634,7 @@ function get_athenaos() {
local HASH=""
local URL="https://github.com/Athena-OS/athena/releases/download/${RELEASE}"
local ISO="athena-rolling-x86_64.iso"
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1689,7 +1678,7 @@ function get_bodhi() {
standard) ISO="bodhi-${RELEASE}-64.iso";;
*) ISO="bodhi-${RELEASE}-64-${EDITION}.iso";;
esac
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1697,7 +1686,7 @@ function get_bunsenlabs() {
local HASH=""
local ISO="boron-1-240123-amd64.hybrid.iso"
local URL="https://ddl.bunsenlabs.org/ddl"
HASH=$(web_pipe "${URL}/release.sha256.txt" | head -1 | cut_1)
HASH=$(web_pipe "${URL}/release.sha256.txt" | head -1 | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1707,7 +1696,7 @@ function get_cachyos() {
local URL="https://mirror.cachyos.org/ISO/${EDITION}/"
REL=$(web_pipe "${URL}" | grep -Po '(?<=">)[0-9]+(?=/</a>)' | sort -ru | tail -n 1)
local ISO="cachyos-${EDITION}-linux-${REL}.iso"
HASH=$(web_pipe "${URL}/${REL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${REL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${REL}/${ISO} ${HASH}"
}
@ -1725,7 +1714,7 @@ function get_chimeralinux() {
local URL="https://repo.chimera-linux.org/live/${RELEASE}"
DATE=$(web_pipe "${URL}/sha256sums.txt" | head -n1 | cut -d'-' -f5)
local ISO="chimera-linux-x86_64-LIVE-${DATE}-${EDITION}.iso"
HASH=$(web_pipe "${URL}/sha256sums.txt" | grep 'x86_64-LIVE' | grep "${EDITION}" | cut_1)
HASH=$(web_pipe "${URL}/sha256sums.txt" | grep 'x86_64-LIVE' | grep "${EDITION}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1750,7 +1739,7 @@ function get_debian() {
URL="${URL/hybrid/cd}"
ISO="${ISO/-live/}"
fi
HASH=$(web_pipe "${URL}/SHA512SUMS" | grep "${ISO}" | cut_1 | head -1)
HASH=$(web_pipe "${URL}/SHA512SUMS" | grep "${ISO}" | cut -d' ' -f1 | head -1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1766,7 +1755,7 @@ function get_deepin() {
REV="1010"
fi
local ISO="deepin-desktop-community-${REV}-amd64.iso"
HASH=$(web_pipe "${URL}/SHA256SUMS" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/SHA256SUMS" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1781,7 +1770,7 @@ function get_devuan() {
daedalus) VER="5.0.0";;
esac
ISO="devuan_${RELEASE}_${VER}_amd64_desktop-live.iso"
HASH=$(web_pipe "${URL}/SHASUMS.txt" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/SHASUMS.txt" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1804,7 +1793,7 @@ function get_easyos() {
5.7|5.6.7|5.6.6) YEAR="2024";;
esac
URL="https://distro.ibiblio.org/easyos/amd64/releases/kirkstone/${YEAR}/${RELEASE}"
HASH=$(web_pipe "${URL}/md5.sum.txt" | cut_1)
HASH=$(web_pipe "${URL}/md5.sum.txt" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1827,7 +1816,7 @@ function get_endeavouros() {
# Find EndeavourOS releases from mirror, pick one matching release
ENDEAVOUR_RELEASES="$(web_pipe "${URL}/" | grep -o -P '(?<=<a href=").*(?=.iso">)' | grep -v 'x86_64')"
ISO="$(echo "${ENDEAVOUR_RELEASES}" | grep -i "${RELEASE}").iso"
HASH=$(web_pipe "${URL}/${ISO}.sha512sum" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha512sum" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1883,9 +1872,9 @@ function get_freedos() {
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);;
HASH=$(web_pipe "${URL}/FD12.sha" | grep "${ISO}" | cut -d' ' -f1);;
1.3) ISO="FD13-LiveCD.zip"
HASH=$(web_pipe "${URL}/verify.txt" | grep -A 8 "sha256sum" | grep "${ISO}" | cut_1);;
HASH=$(web_pipe "${URL}/verify.txt" | grep -A 8 "sha256sum" | grep "${ISO}" | cut -d' ' -f1);;
esac
echo "${URL}/${ISO} ${HASH}"
}
@ -1895,7 +1884,7 @@ function get_garuda() {
local ISO=""
local URL="https://iso.builds.garudalinux.org/iso/latest/garuda"
ISO=${EDITION}/latest.iso
HASH="$(web_pipe "${URL}/${ISO}.sha256" | cut_1)"
HASH="$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)"
echo "${URL}/${ISO} ${HASH}"
}
@ -1904,10 +1893,10 @@ function get_gentoo() {
local ISO=""
local URL="https://mirror.bytemark.co.uk/gentoo/releases/amd64/autobuilds"
case ${EDITION} in
minimal) ISO=$(web_pipe "${URL}/${RELEASE}-iso.txt" | grep install | cut_1);;
livegui) ISO=$(web_pipe "${URL}/${RELEASE}-iso.txt" | grep livegui | cut_1);;
minimal) ISO=$(web_pipe "${URL}/${RELEASE}-iso.txt" | grep install | cut -d' ' -f1);;
livegui) ISO=$(web_pipe "${URL}/${RELEASE}-iso.txt" | grep livegui | cut -d' ' -f1);;
esac
HASH=$(web_pipe "${URL}/${ISO}.DIGESTS" | grep -A 1 SHA512 | grep iso | grep -v CONTENTS | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.DIGESTS" | grep -A 1 SHA512 | grep iso | grep -v CONTENTS | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1965,7 +1954,7 @@ function get_kali() {
local ISO=""
local URL="https://cdimage.kali.org/${RELEASE}"
ISO=$(web_pipe "${URL}/?C=M;O=D" | grep -o ">kali-linux-.*-installer-amd64.iso" | head -n 1 | cut -c 2-)
HASH=$(web_pipe "${URL}/SHA256SUMS" | grep -v torrent | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/SHA256SUMS" | grep -v torrent | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1974,7 +1963,7 @@ function get_kdeneon() {
local ISO=""
local URL="https://files.kde.org/neon/images/${RELEASE}/current"
ISO=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f3-)
HASH=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut_1)
HASH=$(web_pipe "${URL}/neon-${RELEASE}-current.sha256sum" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1989,7 +1978,7 @@ function get_linuxlite() {
local HASH=""
local ISO="linux-lite-${RELEASE}-64bit.iso"
local URL="https://sourceforge.net/projects/linux-lite/files/${RELEASE}"
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -1997,7 +1986,7 @@ function get_linuxmint() {
local HASH=""
local ISO="linuxmint-${RELEASE}-${EDITION}-64bit.iso"
local URL="https://mirror.bytemark.co.uk/linuxmint/stable/${RELEASE}"
HASH=$(web_pipe "${URL}/sha256sum.txt" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2005,7 +1994,7 @@ function get_lmde() {
local HASH=""
local ISO="lmde-${RELEASE}-${EDITION}-64bit.iso"
local URL="https://mirror.bytemark.co.uk/linuxmint/debian"
HASH=$(web_pipe "${URL}/sha256sum.txt" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/sha256sum.txt" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2145,7 +2134,7 @@ function get_mageia() {
local HASH=""
local ISO=""
ISO=$(web_pipe https://www.mageia.org/en/downloads/get/?q="Mageia-${RELEASE}-Live-${EDITION}-x86_64.iso" | grep 'click here'| grep -o 'href=.*\.iso'|cut -d\" -f2)
HASH=$(web_pipe "${ISO}.sha512" | cut_1)
HASH=$(web_pipe "${ISO}.sha512" | cut -d' ' -f1)
echo "${ISO} ${HASH}"
}
@ -2175,7 +2164,7 @@ function get_manjaro() {
else
URL="$(echo "${MANIFEST}" | jq -r ."${TYPE}.${RELEASE}${EDITION}".image)"
fi
HASH=$(web_pipe "${URL}.sha512" | cut_1)
HASH=$(web_pipe "${URL}.sha512" | cut -d' ' -f1)
echo "${URL} ${HASH}"
}
@ -2188,7 +2177,7 @@ function get_mxlinux() {
KDE) ISO="MX-${RELEASE}_KDE_x64.iso";;
Fluxbox) ISO="MX-${RELEASE}_fluxbox_x64.iso";;
esac
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2196,7 +2185,7 @@ function get_netboot() {
local HASH=""
local ISO="netboot.xyz.iso"
local URL="https://boot.netboot.xyz/ipxe"
HASH=$(web_pipe "${URL}/netboot.xyz-sha256-checksums.txt" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/netboot.xyz-sha256-checksums.txt" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2216,7 +2205,7 @@ function get_nitrux() {
URLBASE="https://sourceforge.net/projects/nitruxos/files/Release"
URL="${URLBASE}/ISO"
ISO=$(web_pipe 'https://sourceforge.net/projects/nitruxos/rss?path=/Release/ISO' | grep '.iso' | head -1 | cut -d']' -f1 | cut -d '/' -f4)
HASH=$(web_pipe "${URLBASE}/MD5/${ISONAME}.md5sum" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URLBASE}/MD5/${ISONAME}.md5sum" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2224,7 +2213,7 @@ function get_nixos() {
local HASH=""
local ISO="latest-nixos-${EDITION}-x86_64-linux.iso"
local URL="https://channels.nixos.org/nixos-${RELEASE}"
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2250,7 +2239,7 @@ function get_openindiana() {
local URL=""
URL="https://dlc.openindiana.org/isos/hipster/${RELEASE}"
ISO="OI-hipster-${EDITION}-${RELEASE}.iso"
HASH=$(web_pipe "${URL}/${ISO}.sha256" |cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" |cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2264,14 +2253,14 @@ function get_opensuse() {
elif [ "${RELEASE}" == "microos" ]; then
ISO="openSUSE-MicroOS-DVD-x86_64-Current.iso"
URL="https://download.opensuse.org/tumbleweed/iso"
elif [ "$RELEASE" == 15.0 ] || [ "$RELEASE" == 15.1 ]; then
elif [ "${RELEASE}" == 15.0 ] || [ "${RELEASE}" == 15.1 ]; then
ISO="openSUSE-Leap-${RELEASE}-DVD-x86_64.iso"
URL="https://download.opensuse.org/distribution/leap/${RELEASE}/iso"
else
ISO="openSUSE-Leap-${RELEASE}-DVD-x86_64-Current.iso"
URL="https://download.opensuse.org/distribution/leap/${RELEASE}/iso"
fi
HASH=$(web_pipe "${URL}/${ISO}.sha256" | awk '{if(NR==4) print $0}' | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256" | awk '{if(NR==4) print $0}' | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2285,7 +2274,7 @@ function get_oraclelinux() {
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)
HASH=$(web_pipe "https://linux.oracle.com/security/gpg/checksum/OracleLinux-R${VER_MAJ}-U${VER_MIN}-Server-x86_64.checksum" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2295,7 +2284,7 @@ function get_parrotsec() {
local URL=""
ISO="Parrot-${EDITION}-${RELEASE}_amd64.iso"
URL="https://download.parrot.sh/parrot/iso/${RELEASE}"
HASH="$(web_pipe "${URL}/signed-hashes.txt" | grep "${ISO}" | cut_1)"
HASH="$(web_pipe "${URL}/signed-hashes.txt" | grep "${ISO}" | cut -d' ' -f1)"
echo "${URL}/${ISO} ${HASH}"
}
@ -2317,7 +2306,7 @@ function get_peppermint() {
ISO="PeppermintOS-Debian_64_gfb.iso"
URL="${URL}/Gnome_FlashBack";;
esac
HASH=$(web_pipe "${URL}/${ISO}-sha512.checksum" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}-sha512.checksum" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2337,7 +2326,7 @@ function get_porteus() {
edition="${EDITION~~}"
ISO="Porteus-${edition}-v${RELEASE}-x86_64.iso"
URL="https://mirrors.dotsrc.org/porteus/x86_64/Porteus-v${RELEASE}"
HASH=$(web_pipe "${URL}/sha256sums.txt" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/sha256sums.txt" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2347,7 +2336,7 @@ function get_primtux() {
local ISO=""
ISO="PrimTux${RELEASE}-amd64-${EDITION}.iso"
URL="https://sourceforge.net/projects/primtux/files/Distribution"
HASH=$(web_pipe "${URL}/${ISO}.md5" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.md5" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2402,7 +2391,7 @@ function get_siduction() {
local ISO=""
local URL="https://mirrors.dotsrc.org/siduction/iso/Standing_on_the_Shoulders_of_Giants/${EDITION}"
DATE=$(web_pipe "${URL}"| grep .iso.md5 | cut -d'-' -f6 | cut -d'.' -f1)
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut -d' ' -f1)
ISO="siduction-2023.1.1-Standing_on_the_Shoulders_of_Giants-${EDITION}-amd64-${DATE}.iso"
echo "${URL}/${ISO} ${HASH}"
}
@ -2411,7 +2400,7 @@ function get_slackware() {
local HASH=""
local ISO="slackware64-${RELEASE}-install-dvd.iso"
local URL="https://slackware.nl/slackware/slackware-iso/slackware64-${RELEASE}-iso"
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2444,7 +2433,7 @@ function get_slitaz() {
local HASH=""
local ISO="slitaz-rolling-${RELEASE}"
local URL="http://mirror.slitaz.org/iso/rolling"
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.md5" | cut -d' ' -f1)
echo "${URL}/${ISO}.iso ${HASH}"
}
@ -2452,7 +2441,7 @@ function get_solus() {
local HASH=""
local ISO="Solus-${RELEASE}-${EDITION}.iso"
local URL="https://downloads.getsol.us/isos/${RELEASE}"
HASH=$(web_pipe "${URL}/${ISO}.sha256sum" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha256sum" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2466,7 +2455,7 @@ function get_sparkylinux() {
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)
HASH=$(web_pipe "${URL}/${ISO}.allsums.txt" | head -2 | grep 'iso' | cut -d' ' -f1)
echo "${URL}/${ISO}" "${HASH}"
}
@ -2496,7 +2485,7 @@ function get_tinycore() {
*Pure*) ARCH+="_64";;
esac
local URL="http://www.tinycorelinux.net/${RELEASE}.x/${ARCH}/release"
HASH=$(web_pipe "${URL}/${ISO}.md5.txt" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.md5.txt" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2510,7 +2499,7 @@ function get_trisquel() {
kde) ISO="triskel_${RELEASE}_amd64.iso";;
sugar) ISO="trisquel-sugar_${RELEASE}_amd64.iso";;
esac
HASH=$(web_pipe "${URL}/${ISO}.sha1" | grep "${ISO}" | cut_1)
HASH=$(web_pipe "${URL}/${ISO}.sha1" | grep "${ISO}" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -2520,7 +2509,7 @@ function get_truenas-scale() {
local URL=""
local DLINFO="https://www.truenas.com/download-truenas-scale/"
URL=$(web_pipe "${DLINFO}" | grep -o "\"https://.*${RELEASE}.*\.iso\"" | cut -d'"' -f 2)
HASH=$(web_pipe "${URL}.sha256" | cut_1)
HASH=$(web_pipe "${URL}.sha256" | cut -d' ' -f1)
echo "${URL} ${HASH}"
}
@ -2529,7 +2518,7 @@ function get_truenas-core() {
local URL=""
local DLINFO="https://www.truenas.com/download-truenas-core/"
URL=$(web_pipe "${DLINFO}" | grep -o "\"https://.*${RELEASE}.*\.iso\"" | cut -d'"' -f 2)
HASH=$(web_pipe "${URL}".sha256 | cut_1)
HASH=$(web_pipe "${URL}".sha256 | cut -d' ' -f1)
echo "${URL} ${HASH}"
}
@ -2561,11 +2550,11 @@ function get_ubuntu-server() {
if web_check "${URL}/SHA256SUMS"; then
DATA=$(web_pipe "${URL}/SHA256SUMS" | grep "${NAME}" | grep amd64 | grep iso)
ISO=$(cut -d'*' -f2 <<<"${DATA}")
HASH=$(cut_1 <<<"${DATA}")
HASH=$(cut -d' ' -f1 <<<"${DATA}")
else
DATA=$(web_pipe "${URL}/MD5SUMS" | grep "${NAME}" | grep amd64 | grep iso)
ISO=$(cut -d' ' -f3 <<<"${DATA}")
HASH=$(cut_1 <<<"${DATA}")
HASH=$(cut -d' ' -f1 <<<"${DATA}")
fi
if [[ "${RELEASE}" == "daily"* ]] || [ "${RELEASE}" == "dvd" ]; then
zsync_get "${URL}/${ISO}" "${VM_PATH}" "${OS}-devel.iso"
@ -2607,11 +2596,11 @@ function get_ubuntu() {
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_1 <<<"${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_1 <<<"${DATA}")
HASH=$(cut -d' ' -f1 <<<"${DATA}")
fi
if [ -z "${ISO}" ] || [ -z "${HASH}" ]; then
echo "$(pretty_name "${OS}") ${RELEASE} is currently unavailable. Please select other OS/Release combination"
@ -2635,8 +2624,8 @@ function get_vanillaos() {
local HASH_URL=""
local ISO=""
ISO=$(web_pipe "https://api.github.com/repos/Vanilla-OS/live-iso/releases" | grep 'download_url' | grep "${RELEASE}" | head -1 | cut -d'"' -f4)
HASH_URL=$(echo "${ISO}" | sed s'|\.iso|\.sha256\.txt|g')
HASH=$(web_pipe "${HASH_URL}" | cut_1)
HASH_URL="${ISO//.iso/.sha256.txt}"
HASH=$(web_pipe "${HASH_URL}" | cut -d' ' -f1)
echo "${ISO} ${HASH}"
}
@ -2659,7 +2648,7 @@ function get_vxlinux() {
local HASH=""
local ISO="vx-${RELEASE}.iso"
local URL="https://github.com/VX-Linux/main/releases/download/${RELEASE}"
HASH=$(web_pipe "${URL}/vx-${RELEASE}.md5" | cut_1)
HASH=$(web_pipe "${URL}/vx-${RELEASE}.md5" | cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
@ -3093,13 +3082,13 @@ function download_windows_server() {
local COUNTRY=""
local PRETTY_RELEASE=""
case "$RELEASE" in
case "${RELEASE}" in
"10-ltsc") PRETTY_RELEASE="10 LTSC";;
"2012-r2") PRETTY_RELEASE="2012 R2";;
*) PRETTY_RELEASE="$RELEASE";;
*) PRETTY_RELEASE="${RELEASE}";;
esac
case "$LANG" in
case "${LANG}" in
"English (Great Britain)")
CULTURE="en-gb"
COUNTRY="GB";;
@ -3138,7 +3127,7 @@ function download_windows_server() {
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")" || {
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}")" || {
# This should only happen if there's been some change to the download endpoint web address
echo "- Windows server download page gave us no download link"
return 1
@ -3303,7 +3292,7 @@ function download_windows_workstation() {
function get_windows() {
if [ "${RELEASE}" == "10-ltsc" ]; then
download_windows_workstation windows-10-enterprise ltsc
download_windows_server windows-10-enterprise ltsc
elif [ "${OS}" == "windows-server" ]; then
download_windows_server "windows-server-${RELEASE}"
else
@ -3421,10 +3410,10 @@ Advanced usage:
quickget --download ubuntu 22.04
Arguments:
-[12345] <os> : Show info* about OS
--download <os> <release> [edition] : Download image; no VM configuration
--create-config <os> [path/url] : Create VM config for a OS image
--open-homepage <os> : Open homepage for the OS
--show [os] : Show OS information
--version : Show version
--help : Show this help message
-------------------------- For testing & development ---------------------------
@ -3434,8 +3423,6 @@ Arguments:
--list-csv : List everything in csv format
--list-json : List everything in json format
--------------------------------------------------------------------------------
*info: 1=Logo 2=Based of 3=Credentials 4=Homepage 5=Short info
Can be used in any combination like -13254 or -52
Supported Operating Systems:\n\n' "$(quickemu --version)" "${CURL_VERSION}"
os_support | fold -s -w "$(tput cols)"
@ -3459,10 +3446,6 @@ 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
@ -3476,6 +3459,16 @@ case "${1}" in
shift
open_homepage "${1}"
;;
--show|-show)
shift
if [ -z "${1}" ]; then
for OS in $(os_support); do
show_os_info "${OS}"
done
else
show_os_info "${1}"
fi
exit 0;;
--version|-version)
WHERE=$(dirname "${BASH_SOURCE[0]}")
"${WHERE}/quickemu" --version