mirror of
https://github.com/oSoWoSo/DistroHopper.git
synced 2024-08-14 22:46:53 +00:00
Add Alma Linux (#259)
* temp working files to build function * remove working dross * inital Alma Linux support * Added option for dvd or minimal iso to Alma * corrections * temp working files to build function * remove working dross * inital Alma Linux support * Added option for dvd or minimal iso to Alma * corrections
This commit is contained in:
parent
ca0f144351
commit
0af524e3e5
2 changed files with 79 additions and 9 deletions
|
@ -33,6 +33,7 @@ comprehensive support for macOS and Windows**.
|
||||||
* [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu flavours](https://ubuntu.com/download/flavours)**
|
* [Ubuntu](https://ubuntu.com/desktop) and all the **[official Ubuntu flavours](https://ubuntu.com/download/flavours)**
|
||||||
* [Debian](https://www.debian.org/) (bullseye with all the official and non-free DE variants)
|
* [Debian](https://www.debian.org/) (bullseye with all the official and non-free DE variants)
|
||||||
* [Fedora](https://getfedora.org/) & openSUSE ([Leap](https://get.opensuse.org/leap/), [Tumbleweed](https://get.opensuse.org/tumbleweed/), [MicroOS](https://microos.opensuse.org/))
|
* [Fedora](https://getfedora.org/) & openSUSE ([Leap](https://get.opensuse.org/leap/), [Tumbleweed](https://get.opensuse.org/tumbleweed/), [MicroOS](https://microos.opensuse.org/))
|
||||||
|
* [Alma Linux](https://almalinux.org/)
|
||||||
* [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE), [elementary OS](https://elementary.io/), [Pop!_OS](https://pop.system76.com/)
|
* [Linux Mint](https://linuxmint.com/) (Cinnamon, MATE, and XFCE), [elementary OS](https://elementary.io/), [Pop!_OS](https://pop.system76.com/)
|
||||||
* [Arch Linux](https://www.archlinux.org/), [Kali](https://www.kali.org/),[Garuda](https://garudalinux.org/), [ZorinOS](https://zorin.com/os/) & [NixOS](https://nixos.org/)
|
* [Arch Linux](https://www.archlinux.org/), [Kali](https://www.kali.org/),[Garuda](https://garudalinux.org/), [ZorinOS](https://zorin.com/os/) & [NixOS](https://nixos.org/)
|
||||||
* [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/)
|
* [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/)
|
||||||
|
@ -175,6 +176,7 @@ preferred flavour.
|
||||||
|
|
||||||
`quickget` also supports:
|
`quickget` also supports:
|
||||||
|
|
||||||
|
* `alma`
|
||||||
* `archlinux`
|
* `archlinux`
|
||||||
* `debian`
|
* `debian`
|
||||||
* `elementary`
|
* `elementary`
|
||||||
|
|
80
quickget
80
quickget
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
||||||
# Here the quick 'n dirty guide to adding a new OS to quickget
|
# Here the quick 'n dirty guide to adding a new OS to quickget
|
||||||
#
|
#
|
||||||
# 1. Add the new OS, all lowercase, to os_support()
|
# 1. Add the new OS, all lowercase, to os_support()
|
||||||
|
@ -34,6 +35,7 @@ function pretty_name() {
|
||||||
local PRETTY_NAME=""
|
local PRETTY_NAME=""
|
||||||
SIMPLE_NAME="${1}"
|
SIMPLE_NAME="${1}"
|
||||||
case ${SIMPLE_NAME} in
|
case ${SIMPLE_NAME} in
|
||||||
|
alma) PRETTY_NAME="Alma Linux";;
|
||||||
android) PRETTY_NAME="Android x86";;
|
android) PRETTY_NAME="Android x86";;
|
||||||
archlinux) PRETTY_NAME="Arch Linux";;
|
archlinux) PRETTY_NAME="Arch Linux";;
|
||||||
elementary) PRETTY_NAME="elementary OS";;
|
elementary) PRETTY_NAME="elementary OS";;
|
||||||
|
@ -141,8 +143,12 @@ function list_csv() {
|
||||||
for OPTION in intel nvidia; do
|
for OPTION in intel nvidia; do
|
||||||
echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}"
|
echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}"
|
||||||
done
|
done
|
||||||
elif [ "${OS}" == "debian" ]; then
|
elif [ "${OS}" == "debian" ]; then
|
||||||
for OPTION in standard nonfree; do
|
for OPTION in standard nonfree; do
|
||||||
|
echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}"
|
||||||
|
done
|
||||||
|
elif [ "${OS}" == "alma" ]; then
|
||||||
|
for OPTION in minimal dvd; do
|
||||||
echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}"
|
echo "${DISPLAY_NAME},${OS},${RELEASE},${OPTION},${DOWNLOADER},${PNG},${SVG}"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
|
@ -154,7 +160,8 @@ function list_csv() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function os_support() {
|
function os_support() {
|
||||||
echo android \
|
echo alma \
|
||||||
|
android \
|
||||||
archlinux \
|
archlinux \
|
||||||
debian \
|
debian \
|
||||||
elementary \
|
elementary \
|
||||||
|
@ -189,6 +196,12 @@ function os_support() {
|
||||||
zorin
|
zorin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function releases_alma() {
|
||||||
|
# consider flavours for boot and dvd as well as
|
||||||
|
echo 8.4 \
|
||||||
|
8.5
|
||||||
|
}
|
||||||
|
|
||||||
function releases_android() {
|
function releases_android() {
|
||||||
echo 9.0 \
|
echo 9.0 \
|
||||||
8.1 \
|
8.1 \
|
||||||
|
@ -694,7 +707,10 @@ function make_vm_config() {
|
||||||
|
|
||||||
IMAGE_FILE="${1}"
|
IMAGE_FILE="${1}"
|
||||||
ISO_FILE="${2}"
|
ISO_FILE="${2}"
|
||||||
if [ "${OS}" == "android" ]; then
|
if [ "${OS}" == "alma" ]; then
|
||||||
|
GUEST="linux"
|
||||||
|
IMAGE_TYPE="iso"
|
||||||
|
elif [ "${OS}" == "android" ]; then
|
||||||
GUEST="linux"
|
GUEST="linux"
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
|
@ -762,6 +778,11 @@ function make_vm_config() {
|
||||||
IMAGE_TYPE="iso"
|
IMAGE_TYPE="iso"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -n "${ISOTYPE}" ]; then
|
||||||
|
RELEASE=${RELEASE}-${ISOTYPE}
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -e "${OS}-${RELEASE}.conf" ]; then
|
if [ ! -e "${OS}-${RELEASE}.conf" ]; then
|
||||||
echo "Making VM configuration for ${OS}-${RELEASE}..."
|
echo "Making VM configuration for ${OS}-${RELEASE}..."
|
||||||
cat << EOF > "${OS}-${RELEASE}.conf"
|
cat << EOF > "${OS}-${RELEASE}.conf"
|
||||||
|
@ -772,7 +793,9 @@ EOF
|
||||||
if [ -n "${ISO_FILE}" ]; then
|
if [ -n "${ISO_FILE}" ]; then
|
||||||
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${OS}-${RELEASE}.conf"
|
echo "fixed_iso=\"${VM_PATH}/${ISO_FILE}\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
if [ "${OS}" == "alma" ] && [ ${ISOTYPE} == "dvd" ]; then
|
||||||
|
echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf"
|
||||||
|
fi
|
||||||
if [ "${OS}" == "openbsd" ]; then
|
if [ "${OS}" == "openbsd" ]; then
|
||||||
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
|
||||||
fi
|
fi
|
||||||
|
@ -839,6 +862,33 @@ function get_android() {
|
||||||
make_vm_config "${ISO}"
|
make_vm_config "${ISO}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_alma() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
local VERSION=""
|
||||||
|
#local isotype=""
|
||||||
|
|
||||||
|
validate_release "releases_alma"
|
||||||
|
|
||||||
|
ISOTYPE="minimal" # boot is a step too far for now - needs setting install source to mirror tree ... nope
|
||||||
|
if [ -n "${1}" ]; then
|
||||||
|
ISOTYPE="${1}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# The mirror url returns 10 or so local mirrors with some kind or RR rotation/load balancing
|
||||||
|
# We'll just grab the first
|
||||||
|
|
||||||
|
URL=$(wget -qq -O- https://mirrors.almalinux.org/isos/x86_64/${RELEASE}.html | awk -F"<li>|</li>" '{for(i=2;i<=NF;i+=2) {print $i}}' RS="" |grep href|cut -d\" -f2|head -1)
|
||||||
|
|
||||||
|
#VM_PATH="${VM_PATH}"-${ISOTYPE}
|
||||||
|
ISO=AlmaLinux-${RELEASE}-x86_64-${ISOTYPE}.iso
|
||||||
|
HASH="$(wget -q -O- ${URL}/CHECKSUM|grep \(${ISO}|cut -d\ -f4)"
|
||||||
|
web_get "${URL}/${ISO}" "${VM_PATH}"
|
||||||
|
check_hash "${ISO}" "${HASH}"
|
||||||
|
make_vm_config "${ISO}"
|
||||||
|
}
|
||||||
function get_archlinux() {
|
function get_archlinux() {
|
||||||
local HASH=""
|
local HASH=""
|
||||||
local ISO=""
|
local ISO=""
|
||||||
|
@ -1438,7 +1488,23 @@ if [ -n "${2}" ]; then
|
||||||
RELEASE="${2,,}"
|
RELEASE="${2,,}"
|
||||||
VM_PATH="${OS}-${RELEASE}"
|
VM_PATH="${OS}-${RELEASE}"
|
||||||
|
|
||||||
if [ "${OS}" == "android" ]; then
|
if [ "${OS}" == "alma" ]; then
|
||||||
|
if [ -n "${3}" ]; then
|
||||||
|
ISOTYPE="${3,,}"
|
||||||
|
ISOTYPES=(minimal dvd ) # boot) # a step too far
|
||||||
|
if [[ ! ${ISOTYPES[*]} =~ ${ISOTYPE} ]]; then
|
||||||
|
echo "iso ${ISOTYPE} is not supported:"
|
||||||
|
for ISOTYPE in "${ISOTYPES[@]}"; do
|
||||||
|
echo "${ISOTYPE}"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ISOTYPE="minimal"
|
||||||
|
fi
|
||||||
|
VM_PATH="${OS}-${RELEASE}-${ISOTYPE}"
|
||||||
|
get_alma "${ISOTYPE}"
|
||||||
|
elif [ "${OS}" == "android" ]; then
|
||||||
get_android
|
get_android
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
get_archlinux
|
get_archlinux
|
||||||
|
@ -1543,7 +1609,9 @@ if [ -n "${2}" ]; then
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -n "ERROR! You must specify a release: "
|
echo -n "ERROR! You must specify a release: "
|
||||||
if [ "${OS}" == "android" ]; then
|
if [ "${OS}" == "alma" ]; then
|
||||||
|
releases_alma
|
||||||
|
elif [ "${OS}" == "android" ]; then
|
||||||
releases_android
|
releases_android
|
||||||
elif [ "${OS}" == "archlinux" ]; then
|
elif [ "${OS}" == "archlinux" ]; then
|
||||||
releases_archlinux
|
releases_archlinux
|
||||||
|
|
Loading…
Reference in a new issue