feat: Multi-platform definitions (#206)

This commit is contained in:
Kroese 2025-03-16 09:05:27 +01:00 committed by GitHub
parent d582f6543e
commit 7014ab3ac9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 74 additions and 40 deletions

View file

@ -5,90 +5,123 @@ getURL() {
local id="${1/ /}" local id="${1/ /}"
local ret="$2" local ret="$2"
local url="" local url=""
local arm=
local name="" local name=""
case "${id,,}" in case "${id,,}" in
"alma" ) "alma" | "almalinux" | "alma-linux" )
name="AlmaLinux" name="AlmaLinux"
url="https://repo.almalinux.org/almalinux/9/live/aarch64/AlmaLinux-9.5-aarch64-Live-GNOME.iso" ;; url="https://repo.almalinux.org/almalinux/9/live/x86_64/AlmaLinux-9.5-x86_64-Live-GNOME.iso"
"alpine" ) arm="https://repo.almalinux.org/almalinux/9/live/aarch64/AlmaLinux-9.5-aarch64-Live-GNOME.iso" ;;
"alpine" | "alpinelinux" | "alpine-linux" )
name="Alpine Linux" name="Alpine Linux"
url="https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/aarch64/alpine-virt-3.19.1-aarch64.iso" ;; url="https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/alpine-virt-3.19.1-x86_64.iso"
"arch" ) arm="https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/aarch64/alpine-virt-3.19.1-aarch64.iso" ;;
"arch" | "archlinux" | "arch-linux" )
name="Arch Linux" name="Arch Linux"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://geo.mirror.pkgbuild.com/iso/2025.03.01/archlinux-x86_64.iso" ;;
"cachy" | "cachyos" ) "cachy" | "cachyos" )
name="CachyOS" name="CachyOS"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://cdn77.cachyos.org/ISO/desktop/250202/cachyos-desktop-linux-250202.iso" ;;
"centos" ) "centos" | "centosstream" | "centos-stream" )
name="CentOS Stream" name="CentOS Stream"
url="https://mirrors.xtom.de/centos-stream/10-stream/BaseOS/aarch64/iso/CentOS-Stream-10-latest-aarch64-dvd1.iso" ;; url="https://mirrors.xtom.de/centos-stream/10-stream/BaseOS/x86_64/iso/CentOS-Stream-10-latest-x86_64-dvd1.iso"
arm="https://mirrors.xtom.de/centos-stream/10-stream/BaseOS/aarch64/iso/CentOS-Stream-10-latest-aarch64-dvd1.iso" ;;
"debian" ) "debian" )
name="Debian" name="Debian"
url="https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/debian-12.9.0-arm64-DVD-1.iso" ;; url="https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.9.0-amd64-gnome.iso"
arm="https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/debian-12.9.0-arm64-DVD-1.iso" ;;
"endeavour" | "endeavouros" ) "endeavour" | "endeavouros" )
name="EndeavourOS" name="EndeavourOS"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://mirrors.gigenet.com/endeavouros/iso/EndeavourOS_Mercury-2025.02.08.iso" ;;
"fedora" ) "fedora" | "fedoralinux" | "fedora-linux" )
name="Fedora Linux" name="Fedora Linux"
url="https://eu.edge.kernel.org/fedora/releases/41/Workstation/aarch64/images/Fedora-Workstation-41-1.4.aarch64.raw.xz" ;; url="https://download.fedoraproject.org/pub/fedora/linux/releases/41/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-41-1.4.iso"
"gentoo" ) arm="https://eu.edge.kernel.org/fedora/releases/41/Workstation/aarch64/images/Fedora-Workstation-41-1.4.aarch64.raw.xz" ;;
"gentoo" | "gentoolinux" | "gentoo-linux" )
name="Gentoo Linux" name="Gentoo Linux"
url="https://distfiles.gentoo.org/releases/arm64/autobuilds/20250309T234826Z/di-arm64-cloudinit-20250309T234826Z.qcow2" ;; url="https://distfiles.gentoo.org/releases/amd64/autobuilds/20250309T170330Z/livegui-amd64-20250309T170330Z.iso"
"kali" ) arm="https://distfiles.gentoo.org/releases/arm64/autobuilds/20250309T234826Z/di-arm64-cloudinit-20250309T234826Z.qcow2" ;;
"kali" | "kalilinux" | "kali-linux" )
name="Kali Linux" name="Kali Linux"
url="https://cdimage.kali.org/kali-2024.4/kali-linux-2024.4-live-arm64.iso" ;; url="https://cdimage.kali.org/kali-2024.4/kali-linux-2024.4-live-amd64.iso"
arm="https://cdimage.kali.org/kali-2024.4/kali-linux-2024.4-live-arm64.iso" ;;
"kubuntu" ) "kubuntu" )
name="Kubuntu" name="Kubuntu"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://cdimage.ubuntu.com/kubuntu/releases/24.10/release/kubuntu-24.10-desktop-amd64.iso" ;;
"macos" | "osx" ) "macos" | "osx" )
name="macOS" name="macOS"
error "To install $name use: https://github.com/dockur/macos" && return 1 ;; error "To install $name use: https://github.com/dockur/macos" && return 1 ;;
"mint" | "linuxmint" ) "mint" | "linuxmint" | "linux-mint" )
name="Linux Mint" name="Linux Mint"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://mirrors.layeronline.com/linuxmint/stable/22.1/linuxmint-22.1-cinnamon-64bit.iso" ;;
"manjaro" ) "manjaro" )
name="Manjaro" name="Manjaro"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://download.manjaro.org/kde/24.2.1/manjaro-kde-24.2.1-241216-linux612.iso" ;;
"mx" ) "mx" | "mxlinux" | "mx-linux" )
name="MX Linux" name="MX Linux"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://mirror.umd.edu/mxlinux-iso/MX/Final/Xfce/MX-23.5_x64.iso" ;;
"nixos" ) "nixos" )
name="NixOS" name="NixOS"
url="https://channels.nixos.org/nixos-24.11/latest-nixos-gnome-aarch64-linux.iso" ;; url="https://channels.nixos.org/nixos-24.11/latest-nixos-gnome-x86_64-linux.iso"
"opensuse" | "suse" ) arm="https://channels.nixos.org/nixos-24.11/latest-nixos-gnome-aarch64-linux.iso" ;;
"opensuse" | "open-suse" | "suse" )
name="OpenSUSE" name="OpenSUSE"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://download.opensuse.org/distribution/leap/15.0/live/openSUSE-Leap-15.0-GNOME-Live-x86_64-Current.iso" ;;
"oracle" ) "oracle" | "oraclelinux" | "oracle-linux" )
name="Oracle Linux" name="Oracle Linux"
url="https://yum.oracle.com/ISOS/OracleLinux/OL9/u5/aarch64/OracleLinux-R9-U5-aarch64-boot-uek.iso" ;; url="https://yum.oracle.com/ISOS/OracleLinux/OL9/u5/x86_64/OracleLinux-R9-U5-x86_64-boot.iso"
"rocky" ) arm="https://yum.oracle.com/ISOS/OracleLinux/OL9/u5/aarch64/OracleLinux-R9-U5-aarch64-boot-uek.iso" ;;
"rocky" | "rockylinux" | "rocky-linux" )
name="Rocky Linux" name="Rocky Linux"
url="https://dl.rockylinux.org/pub/rocky/9/live/aarch64/Rocky-9-Workstation-aarch64-latest.iso" ;; url="https://dl.rockylinux.org/pub/rocky/9/live/x86_64/Rocky-9-Workstation-x86_64-latest.iso"
arm="https://dl.rockylinux.org/pub/rocky/9/live/aarch64/Rocky-9-Workstation-aarch64-latest.iso" ;;
"slack" | "slackware" ) "slack" | "slackware" )
name="Slackware" name="Slackware"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://slackware.nl/slackware-live/slackware64-15.0-live/slackware64-live-15.0.iso" ;;
"tails" ) "tails" )
name="Tails" name="Tails"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://download.tails.net/tails/stable/tails-amd64-6.13/tails-amd64-6.13.img" ;;
"ubuntu" ) "ubuntu" | "ubuntu-desktop" )
name="Ubuntu Desktop" name="Ubuntu Desktop"
url="https://cdimage.ubuntu.com/ubuntu/releases/24.10/release/ubuntu-24.10-desktop-arm64.iso" ;; url="https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-desktop-amd64.iso"
"ubuntus" ) arm="https://cdimage.ubuntu.com/ubuntu/releases/24.10/release/ubuntu-24.10-desktop-arm64.iso" ;;
"ubuntus" | "ubuntu-server")
name="Ubuntu Server" name="Ubuntu Server"
url="https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.2-live-server-arm64.iso" ;; url="https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-live-server-amd64.iso"
arm="https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.2-live-server-arm64.iso" ;;
"windows" ) "windows" )
name="Windows" name="Windows"
error "To install $name use: https://github.com/dockur/windows" && return 1 ;; error "To install $name use: https://github.com/dockur/windows" && return 1 ;;
"xubuntu" ) "xubuntu" )
name="Xubuntu" name="Xubuntu"
error "No image for $name is available for ARM64 yet! " && return 1 ;; url="https://mirror.us.leaseweb.net/ubuntu-cdimage/xubuntu/releases/24.04/release/xubuntu-24.04.2-desktop-amd64.iso" ;;
esac esac
if [[ "${ARCH,,}" != "arm64" ]]; then
if [ -n "$name" ] && [ -z "$url" ]; then
error "No image for $name available!"
return 1
fi
else
if [ -n "$name" ] && [ -z "$arm" ]; then
error "No image for $name is available for ARM64 yet! "
return 1
fi
fi
case "${ret,,}" in case "${ret,,}" in
"test" ) ;; "test" )
"name" ) echo "$name" ;; ;;
*) echo "$url";; "name" )
echo "$name"
;;
*)
if [[ "${ARCH,,}" != "arm64" ]]; then
echo "$url"
else
echo "$arm"
fi ;;
esac esac
return 0 return 0

View file

@ -64,6 +64,7 @@ if [ -z "${CPU// /}" ] && grep -qi "model:" <<< "$CPI"; then
fi fi
CPU="${CPU// CPU/}" CPU="${CPU// CPU/}"
CPU="${CPU// 6 Core/}"
CPU="${CPU// 8 Core/}" CPU="${CPU// 8 Core/}"
CPU="${CPU// 16 Core/}" CPU="${CPU// 16 Core/}"
CPU="${CPU// 32 Core/}" CPU="${CPU// 32 Core/}"