quickfzf 0.3
This commit is contained in:
parent
0c8e1a5205
commit
a43aff6abc
|
@ -0,0 +1,319 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Author: zenobit
|
||||||
|
# Description: Uses fzf to provide a simple TUI for quickemu and quickget
|
||||||
|
# License MIT
|
||||||
|
|
||||||
|
tui_define_variables() {
|
||||||
|
progname="${progname:="${0##*/}"}"
|
||||||
|
version='0.3'
|
||||||
|
#EDITOR='nano'
|
||||||
|
configdir="$HOME/.config/$progname"
|
||||||
|
vms=(*.conf)
|
||||||
|
TMP="/tmp/$progname"
|
||||||
|
# Set traps to catch the signals and exit gracefully
|
||||||
|
trap 'exit' INT
|
||||||
|
trap 'exit' EXIT
|
||||||
|
# Dependency check: check if fzf,quickemu is installed and can be executed
|
||||||
|
if ! command -v quickemu >/dev/null 2>&1; then
|
||||||
|
echo 'You are missing quickemu...' && exit 1
|
||||||
|
fi
|
||||||
|
QUICKGET=$(command -v quickget) || exit 2
|
||||||
|
if ! command -v fzf >/dev/null 2>&1; then
|
||||||
|
echo 'You are missing fzf...' && exit 3
|
||||||
|
fi
|
||||||
|
qcommand="quickemu < ${configdir}/command -vm"
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_display_header() {
|
||||||
|
printf 'Simple TUI for quickemu\n%s: v.%s\nquickemu: v.%s\n' "$progname" "$version" "$(quickemu --version)"
|
||||||
|
if [ -z "$EDITOR" ]; then
|
||||||
|
echo 'editor: Not set! edit configs will not work!'
|
||||||
|
else
|
||||||
|
echo "editor: $EDITOR"
|
||||||
|
fi
|
||||||
|
printf 'Workdir:\n %s\n' "$(pwd)"
|
||||||
|
if [ -f "${configdir}/command" ]; then
|
||||||
|
printf '\ncustom command:\n quickemu %s\n' "$(cat "${configdir}/command")"
|
||||||
|
fi
|
||||||
|
if [ -f "${configdir}/vm" ]; then
|
||||||
|
printf '\nVMs config:\n-------------\n%s\n' "$(cat "${configdir}/vm")"
|
||||||
|
fi
|
||||||
|
printf '\nPrepared VMs:\n-------------\n'
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_print_available_VMs() {
|
||||||
|
if [ ${#vms[@]} -eq 0 ]; then
|
||||||
|
echo 'No VMs found.'
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
printf '%s\n' "${vms[@]%.*}"
|
||||||
|
echo '-------------'
|
||||||
|
printf 'Press CTRL+c anytime to kill %s' "$progname"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_action_prompt_fzf() {
|
||||||
|
start=$(printf "Do you want to...
|
||||||
|
run VM
|
||||||
|
create new VM
|
||||||
|
open distro homepage
|
||||||
|
advanced & settings" | fzf --height 10% --layout=reverse --info=inline --header-lines=1)
|
||||||
|
case $start in
|
||||||
|
c|'create new VM' ) todo='create';;
|
||||||
|
a|'advanced & settings' ) todo='advanced';;
|
||||||
|
r|'run VM' ) todo='run';;
|
||||||
|
h|'open distro homepage' ) todo='homepage';;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf_get_releases() {
|
||||||
|
release=$(echo "$choices" | grep 'Releases' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Release')
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf_get_editions() {
|
||||||
|
edition=$(echo "$choices" | grep 'Editions' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose Edition')
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_create_VM() {
|
||||||
|
os=$("$QUICKGET" | awk 'NR==2,/zorin/' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose OS to download')
|
||||||
|
choices=$("$QUICKGET" "$os" | sed 1d)
|
||||||
|
# Get the release and edition to download, if necessary
|
||||||
|
if [ -z "$os" ]; then exit 100
|
||||||
|
elif [ "$(echo "$choices" | wc -l)" = 1 ]; then
|
||||||
|
fzf_get_releases || exit 101
|
||||||
|
printf '\n Trying to download %s %s...\n\n' "$os" "$release"
|
||||||
|
"$QUICKGET" "$os" "$release" || exit 104
|
||||||
|
cat "${configdir}/vm" >> $(ls -t | head -n1)
|
||||||
|
else
|
||||||
|
fzf_get_releases || exit 102
|
||||||
|
fzf_get_editions || exit 103
|
||||||
|
printf '\n Trying to download %s %s %s...\n\n' "$os" "$release" "$edition"
|
||||||
|
"$QUICKGET" "$os" "$release" "$edition" || exit 105
|
||||||
|
echo "${configdir}/vm" >> ./"$(ls -t | head -n1)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_edit_default_VMs_config() {
|
||||||
|
printf 'For example:\ncpu_cores="2"\nram="4G"\n'
|
||||||
|
${EDITOR} ${configdir}/vm
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf_edit_VM_config() {
|
||||||
|
find *.conf | fzf --cycle --header='Choose config to edit' --height 10% --layout=reverse --info=inline --preview 'cat {}' --bind 'enter:become($EDITOR {})' || exit 104
|
||||||
|
}
|
||||||
|
|
||||||
|
fzf_custom_quickemu_command() {
|
||||||
|
custom=$(echo "edit delete"| grep -o '[^ ]*' | fzf --cycle --header='Edit or delete custom command?')
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_custom_quickemu_command() {
|
||||||
|
fzf_custom_quickemu_command
|
||||||
|
if [ "$custom" = "edit" ]; then
|
||||||
|
quickemu
|
||||||
|
printf '\nEnter quickemu custom command:\n For example:--public-dir ~/Downloads\n:'
|
||||||
|
read -r command
|
||||||
|
mkdir -p "$configdir"
|
||||||
|
echo "$command" > "${configdir}/command"
|
||||||
|
elif [ "$custom" = "delete" ]; then
|
||||||
|
rm "${configdir}/command"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_choose_VM_to_run() {
|
||||||
|
chosen=$(printf '%s\n' "${vms[@]%.*}" | fzf --cycle --header='Choose VM to run' --height 50% --layout=reverse --info=inline --preview 'cat {}.conf')
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_run_VM() {
|
||||||
|
printf '\n Starting %s...\n\n' "$chosen"
|
||||||
|
if [ -f "${configdir}/command" ]; then
|
||||||
|
quickemu < "${configdir}/command" -vm "$chosen".conf
|
||||||
|
else
|
||||||
|
quickemu -vm "$chosen".conf
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
quickget_add_distro() {
|
||||||
|
echo "for now with yad only" #TODO
|
||||||
|
yad --form --field="Pretty name" "" --field="Name" "" --field="Releases" "" --field="Editions" "" --field="URL" "" --field="ISO" "" --field="Checksum file" "" > "${TMP}/template"
|
||||||
|
PRETTY_NAME="$(cat "${TMP}/template" | cut -d'|' -f1)"
|
||||||
|
NAME="$("${TMP}/template" > cut -d'|' -f2)"
|
||||||
|
RELEASES="$(cat "${TMP}/template" | cut -d'|' -f3)"
|
||||||
|
EDITIONS="$(cat "${TMP}/template" | cut -d'|' -f4)"
|
||||||
|
URL="$(cat "${TMP}/template" | cut -d'|' -f5)"
|
||||||
|
ISO="$(cat "${TMP}/template" | cut -d'|' -f6)"
|
||||||
|
CHECKSUM_FILE="$(cat "${TMP}/template" | cut -d'|' -f7)"
|
||||||
|
cat <<EOF > "${TMP}/template"
|
||||||
|
#32
|
||||||
|
|
||||||
|
$NAME) PRETTY_NAME="$PRETTY_NAME";;
|
||||||
|
|
||||||
|
#line 184+
|
||||||
|
|
||||||
|
$NAME \\
|
||||||
|
|
||||||
|
#line 262+
|
||||||
|
|
||||||
|
function releases_$NAME() {
|
||||||
|
echo $RELEASES
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_$NAME() {
|
||||||
|
echo $EDITIONS
|
||||||
|
}
|
||||||
|
|
||||||
|
#line 1052+
|
||||||
|
|
||||||
|
function get_$NAME() {
|
||||||
|
local EDITION="\${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO="$ISO"
|
||||||
|
local URL="$URL"
|
||||||
|
HASH="\$(wget -q -O- \${URL}/\${CHECKSUM_FILE} | grep (\${ISO} | cut -d' ' -f4)"
|
||||||
|
echo "\${URL}/\${ISO}" "\${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
diff "${TMP}/template" "quickget"
|
||||||
|
}
|
||||||
|
|
||||||
|
function quickget_get_releases_and_editions() {
|
||||||
|
result=$(quickget "$os" | sed 1d | cut -d':' -f2)
|
||||||
|
releases=$(echo "$result" | head -1)
|
||||||
|
editions=$(echo "$result" | tail -1)
|
||||||
|
}
|
||||||
|
|
||||||
|
function desktop_entry_create() {
|
||||||
|
cat <<EOF > "${DESKTOP_FILE}"
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=$version
|
||||||
|
Type=$type
|
||||||
|
Name=$name
|
||||||
|
GenericName=$progname
|
||||||
|
Comment=$comment
|
||||||
|
Exec=$execmd
|
||||||
|
Icon=$icon
|
||||||
|
Terminal=$terminal
|
||||||
|
X-MultipleArgs=$args
|
||||||
|
Type=$type
|
||||||
|
Categories=$categories
|
||||||
|
StartupNotify=$notify
|
||||||
|
MimeType=$mime
|
||||||
|
Keywords=$keyword
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
quickget_test_download_ISOs() {
|
||||||
|
rm -r "${TMP}"
|
||||||
|
mkdir -p "$TMP" && cd "$TMP"
|
||||||
|
touch "${TMP}/test"
|
||||||
|
"$QUICKGET" | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' > supported
|
||||||
|
while read -r get_name; do
|
||||||
|
echo "Trying $get_name..."
|
||||||
|
mkdir -p "${TMP}/_distros/$get_name" && cd "${TMP}/_distros/$get_name"
|
||||||
|
releases=$("$QUICKGET" "$get_name" | grep 'Releases' | cut -d':' -f2 | sed 's/^ //' | sed 's/ *$//')
|
||||||
|
echo "$releases" > releases
|
||||||
|
editions=$("$QUICKGET" "$get_name" | grep 'Editions' | cut -d':' -f2 | sed 's/^ //' | sed 's/ *$//')
|
||||||
|
echo "$editions" > editions
|
||||||
|
if [ -z "$editions" ]; then
|
||||||
|
for release in $releases; do
|
||||||
|
echo "$get_name" >> "${TMP}/test"
|
||||||
|
"$QUICKGET" -t "$get_name" "${release}" >> "${TMP}/test"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
while read -r release; do
|
||||||
|
for edition in $editions; do
|
||||||
|
echo "$get_name" >> "${TMP}/test"
|
||||||
|
"$QUICKGET" -t "$get_name" "${release}" "${edition}" >> "${TMP}/test"
|
||||||
|
done
|
||||||
|
done < releases
|
||||||
|
fi
|
||||||
|
cd "$TMP"
|
||||||
|
done < supported
|
||||||
|
printf "\nDone"
|
||||||
|
}
|
||||||
|
|
||||||
|
quickget_show_ISOs_urls(){
|
||||||
|
rm -r "${TMP}"
|
||||||
|
mkdir -p "$TMP" && cd "$TMP"
|
||||||
|
touch "${TMP}/test"
|
||||||
|
"$QUICKGET" | sed 1d | cut -d':' -f2 | grep -o '[^ ]*' > supported
|
||||||
|
while read -r get_name; do
|
||||||
|
echo "Trying $get_name..."
|
||||||
|
mkdir -p "${TMP}/_distros/$get_name" && cd "${TMP}/_distros/$get_name"
|
||||||
|
releases=$("$QUICKGET" "$get_name" | grep 'Releases' | cut -d':' -f2 | sed 's/^ //' | sed 's/ *$//')
|
||||||
|
echo "$releases" > releases
|
||||||
|
editions=$("$QUICKGET" "$get_name" | grep 'Editions' | cut -d':' -f2 | sed 's/^ //' | sed 's/ *$//')
|
||||||
|
echo "$editions" > editions
|
||||||
|
if [ -z "$editions" ]; then
|
||||||
|
for release in $releases; do
|
||||||
|
echo "$get_name" >> "${TMP}/test"
|
||||||
|
timeout 3 "$QUICKGET" -s "$get_name" "${release}" >> "${TMP}/test" && $(killall zsync >> /dev/null)
|
||||||
|
done
|
||||||
|
else
|
||||||
|
while read -r release; do
|
||||||
|
for edition in $editions; do
|
||||||
|
echo "$get_name" >> "${TMP}/test"
|
||||||
|
timeout 3 "$QUICKGET" -s "$get_name" "${release}" "${edition}" >> "${TMP}/test" && $(killall zsync >> /dev/null)
|
||||||
|
done
|
||||||
|
done < releases
|
||||||
|
fi
|
||||||
|
cd "$TMP"
|
||||||
|
done < supported
|
||||||
|
printf "\nDone"
|
||||||
|
}
|
||||||
|
|
||||||
|
quickget_open_distro_homepage(){
|
||||||
|
os=$("$QUICKGET" | awk 'NR==2,/zorin/' | cut -d':' -f2 | grep -o '[^ ]*' | fzf --cycle --header='Choose distro homepage to open')
|
||||||
|
"$QUICKGET" -o "${os}"
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_advanced_menu() {
|
||||||
|
advance=$(printf "Do you want to...
|
||||||
|
default VMs config
|
||||||
|
edit VM config
|
||||||
|
quickemu custom command
|
||||||
|
quickget add distro
|
||||||
|
quickget test ISOs URLs
|
||||||
|
quickget show ISOs URLs" | fzf --height 10% --layout=reverse --info=inline --header-lines=1)
|
||||||
|
case $advance in
|
||||||
|
'default VMs config' ) tui_edit_default_VMs_config;;
|
||||||
|
'edit VM config' ) fzf_edit_VM_config;;
|
||||||
|
'quickemu custom command' ) tui_custom_quickemu_command;;
|
||||||
|
'quickget add distro' ) quickget_add_distro;;
|
||||||
|
'quickget test ISOs URLs' ) quickget_test_download_ISOs;;
|
||||||
|
'quickget show ISOs URLs' ) quickget_show_ISOs_urls;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_what_to_do() {
|
||||||
|
if [ "$#" -eq "1" ]; then
|
||||||
|
todo="$1"
|
||||||
|
fi
|
||||||
|
case $todo in
|
||||||
|
advanced ) tui_advanced_menu;;
|
||||||
|
create ) tui_create_VM || exit 200;;
|
||||||
|
edit ) tui_edit_VM_config || exit 201;;
|
||||||
|
custom ) tui_custom_quickemu_command || exit 202;;
|
||||||
|
homepage ) quickget_open_distro_homepage || exit 203;;
|
||||||
|
run )
|
||||||
|
tui_choose_VM_to_run || exit 204
|
||||||
|
tui_run_VM || exit 205
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
tui_run() {
|
||||||
|
tui_define_variables || exit 4
|
||||||
|
tui_display_header || exit 5
|
||||||
|
tui_print_available_VMs || exit 6
|
||||||
|
tui_action_prompt_fzf || exit 7
|
||||||
|
tui_what_to_do || exit 8
|
||||||
|
}
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
tui_run
|
||||||
|
exit 0
|
||||||
|
done
|
569
quickget
569
quickget
|
@ -55,15 +55,24 @@ function pretty_name() {
|
||||||
local PRETTY_NAME=""
|
local PRETTY_NAME=""
|
||||||
SIMPLE_NAME="${1}"
|
SIMPLE_NAME="${1}"
|
||||||
case ${SIMPLE_NAME} in
|
case ${SIMPLE_NAME} in
|
||||||
|
agarimos) PRETTY_NAME="AgarimOS";;
|
||||||
alma) PRETTY_NAME="Alma Linux";;
|
alma) PRETTY_NAME="Alma Linux";;
|
||||||
alpine) PRETTY_NAME="Alpine Linux";;
|
alpine) PRETTY_NAME="Alpine Linux";;
|
||||||
android) PRETTY_NAME="Android x86";;
|
android) PRETTY_NAME="Android x86";;
|
||||||
archlinux) PRETTY_NAME="Arch Linux";;
|
archlinux) PRETTY_NAME="Arch Linux";;
|
||||||
archcraft) PRETTY_NAME="Archcraft";;
|
archcraft) PRETTY_NAME="Archcraft";;
|
||||||
arcolinux) PRETTY_NAME="Arco Linux";;
|
arcolinux) PRETTY_NAME="Arco Linux";;
|
||||||
|
artixlinux) PRETTY_NAME="Artix Linux";;
|
||||||
|
atheanos) PRETTY_NAME="Athena OS";;
|
||||||
|
biglinux) PRETTY_NAME="BigLinux";;
|
||||||
blendos) PRETTY_NAME="BlendOS";;
|
blendos) PRETTY_NAME="BlendOS";;
|
||||||
|
bodhi) PRETTY_NAME="Bodhi Linux";;
|
||||||
cachyos) PRETTY_NAME="CachyOS";;
|
cachyos) PRETTY_NAME="CachyOS";;
|
||||||
centos-stream) PRETTY_NAME="CentOS Stream";;
|
centos-stream) PRETTY_NAME="CentOS Stream";;
|
||||||
|
cereus) PRETTY_NAME="Cereus Linux";;
|
||||||
|
chimera) PRETTY_NAME="Chimera Linux";;
|
||||||
|
devuan) PRETTY_NAME="Devuan";;
|
||||||
|
dietpi) PRETTY_NAME="DietPi";;
|
||||||
dragonflybsd) PRETTY_NAME="DragonFlyBSD";;
|
dragonflybsd) PRETTY_NAME="DragonFlyBSD";;
|
||||||
easyos) PRETTY_NAME="EasyOS";;
|
easyos) PRETTY_NAME="EasyOS";;
|
||||||
elementary) PRETTY_NAME="elementary OS";;
|
elementary) PRETTY_NAME="elementary OS";;
|
||||||
|
@ -71,6 +80,8 @@ function pretty_name() {
|
||||||
endless) PRETTY_NAME="Endless OS";;
|
endless) PRETTY_NAME="Endless OS";;
|
||||||
freebsd) PRETTY_NAME="FreeBSD";;
|
freebsd) PRETTY_NAME="FreeBSD";;
|
||||||
freedos) PRETTY_NAME="FreeDOS";;
|
freedos) PRETTY_NAME="FreeDOS";;
|
||||||
|
fvoid) PRETTY_NAME="F-Void";;
|
||||||
|
gabeeos) PRETTY_NAME="gabeeOS Linux";;
|
||||||
garuda) PRETTY_NAME="Garuda Linux";;
|
garuda) PRETTY_NAME="Garuda Linux";;
|
||||||
ghostbsd) PRETTY_NAME="GhostBSD";;
|
ghostbsd) PRETTY_NAME="GhostBSD";;
|
||||||
holoiso) PRETTY_NAME="SteamOS HoloISO";;
|
holoiso) PRETTY_NAME="SteamOS HoloISO";;
|
||||||
|
@ -80,6 +91,7 @@ function pretty_name() {
|
||||||
linuxmint) PRETTY_NAME="Linux Mint";;
|
linuxmint) PRETTY_NAME="Linux Mint";;
|
||||||
lmde) PRETTY_NAME="Linux Mint Debian Edition";;
|
lmde) PRETTY_NAME="Linux Mint Debian Edition";;
|
||||||
mageia) PRETTY_NAME="Mageia";;
|
mageia) PRETTY_NAME="Mageia";;
|
||||||
|
miyo) PRETTY_NAME="Miyo Linux";;
|
||||||
mxlinux) PRETTY_NAME="MX Linux";;
|
mxlinux) PRETTY_NAME="MX Linux";;
|
||||||
netboot) PRETTY_NAME="netboot.xyz";;
|
netboot) PRETTY_NAME="netboot.xyz";;
|
||||||
netbsd) PRETTY_NAME="NetBSD";;
|
netbsd) PRETTY_NAME="NetBSD";;
|
||||||
|
@ -91,12 +103,17 @@ function pretty_name() {
|
||||||
oraclelinux) PRETTY_NAME="Oracle Linux";;
|
oraclelinux) PRETTY_NAME="Oracle Linux";;
|
||||||
peppermint) PRETTY_NAME="PeppermintOS";;
|
peppermint) PRETTY_NAME="PeppermintOS";;
|
||||||
popos) PRETTY_NAME="Pop!_OS";;
|
popos) PRETTY_NAME="Pop!_OS";;
|
||||||
|
pureos) PRETTY_NAME="PureOS";;
|
||||||
reactos) PRETTY_NAME="ReactOS";;
|
reactos) PRETTY_NAME="ReactOS";;
|
||||||
rebornos) PRETTY_NAME="RebornOS";;
|
rebornos) PRETTY_NAME="RebornOS";;
|
||||||
rockylinux) PRETTY_NAME="Rocky Linux";;
|
rockylinux) PRETTY_NAME="Rocky Linux";;
|
||||||
|
slitaz) PRETTY_NAME="SliTaz GNU/Linux";;
|
||||||
|
sparkylinux) PRETTY_NAME="SparkyLinux";;
|
||||||
|
spiral) PRETTY_NAME="SpiralLinux";;
|
||||||
tinycore) PRETTY_NAME="Tiny Core Linux";;
|
tinycore) PRETTY_NAME="Tiny Core Linux";;
|
||||||
truenas-core) PRETTY_NAME="TrueNAS Core";;
|
truenas-core) PRETTY_NAME="TrueNAS Core";;
|
||||||
truenas-scale) PRETTY_NAME="TrueNAS Scale";;
|
truenas-scale) PRETTY_NAME="TrueNAS Scale";;
|
||||||
|
tuxedoos) PRETTY_NAME="TuxedoOS";;
|
||||||
ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";;
|
ubuntu-budgie) PRETTY_NAME="Ubuntu Budgie";;
|
||||||
ubuntucinnamon) PRETTY_NAME="Ubuntu Cinnamon";;
|
ubuntucinnamon) PRETTY_NAME="Ubuntu Cinnamon";;
|
||||||
ubuntukylin) PRETTY_NAME="Ubuntu Kylin";;
|
ubuntukylin) PRETTY_NAME="Ubuntu Kylin";;
|
||||||
|
@ -105,7 +122,9 @@ function pretty_name() {
|
||||||
ubuntustudio) PRETTY_NAME="Ubuntu Studio";;
|
ubuntustudio) PRETTY_NAME="Ubuntu Studio";;
|
||||||
ubuntu-unity) PRETTY_NAME="Ubuntu Unity";;
|
ubuntu-unity) PRETTY_NAME="Ubuntu Unity";;
|
||||||
vanillaos) PRETTY_NAME="Vanilla OS";;
|
vanillaos) PRETTY_NAME="Vanilla OS";;
|
||||||
|
ventoy) PRETTY_NAME="Ventoy";;
|
||||||
void) PRETTY_NAME="Void Linux";;
|
void) PRETTY_NAME="Void Linux";;
|
||||||
|
voidpup) PRETTY_NAME="Void Puppy";;
|
||||||
vxlinux) PRETTY_NAME="VX Linux";;
|
vxlinux) PRETTY_NAME="VX Linux";;
|
||||||
xerolinux) PRETTY_NAME="XeroLinux";;
|
xerolinux) PRETTY_NAME="XeroLinux";;
|
||||||
zorin) PRETTY_NAME="Zorin OS";;
|
zorin) PRETTY_NAME="Zorin OS";;
|
||||||
|
@ -203,22 +222,31 @@ function list_csv() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function os_support() {
|
function os_support() {
|
||||||
echo alma \
|
echo agarimos \
|
||||||
|
alma \
|
||||||
alpine \
|
alpine \
|
||||||
android \
|
android \
|
||||||
antix \
|
antix \
|
||||||
archlinux \
|
archlinux \
|
||||||
archcraft \
|
archcraft \
|
||||||
arcolinux \
|
arcolinux \
|
||||||
|
antix \
|
||||||
|
artixlinux \
|
||||||
|
athenaos \
|
||||||
batocera \
|
batocera \
|
||||||
|
bazzite \
|
||||||
|
biglinux \
|
||||||
blendos \
|
blendos \
|
||||||
bodhi \
|
bodhi \
|
||||||
bunsenlabs \
|
bunsenlabs \
|
||||||
cachyos \
|
cachyos \
|
||||||
centos-stream \
|
centos-stream \
|
||||||
|
cereus \
|
||||||
|
chimeralinux \
|
||||||
debian \
|
debian \
|
||||||
deepin \
|
deepin \
|
||||||
devuan \
|
devuan \
|
||||||
|
dietpi \
|
||||||
dragonflybsd \
|
dragonflybsd \
|
||||||
easyos \
|
easyos \
|
||||||
edubuntu \
|
edubuntu \
|
||||||
|
@ -228,6 +256,8 @@ function os_support() {
|
||||||
fedora \
|
fedora \
|
||||||
freebsd \
|
freebsd \
|
||||||
freedos \
|
freedos \
|
||||||
|
fvoid \
|
||||||
|
gabeeos \
|
||||||
garuda \
|
garuda \
|
||||||
gentoo \
|
gentoo \
|
||||||
ghostbsd \
|
ghostbsd \
|
||||||
|
@ -242,6 +272,7 @@ function os_support() {
|
||||||
lmde \
|
lmde \
|
||||||
mageia \
|
mageia \
|
||||||
manjaro \
|
manjaro \
|
||||||
|
miyo \
|
||||||
mxlinux \
|
mxlinux \
|
||||||
netboot \
|
netboot \
|
||||||
netbsd \
|
netbsd \
|
||||||
|
@ -260,13 +291,17 @@ function os_support() {
|
||||||
rockylinux \
|
rockylinux \
|
||||||
siduction \
|
siduction \
|
||||||
slackware \
|
slackware \
|
||||||
|
slax \
|
||||||
|
slitaz \
|
||||||
solus \
|
solus \
|
||||||
|
sparkylinux \
|
||||||
spiral \
|
spiral \
|
||||||
tails \
|
tails \
|
||||||
tinycore \
|
tinycore \
|
||||||
trisquel \
|
trisquel \
|
||||||
truenas-core \
|
truenas-core \
|
||||||
truenas-scale \
|
truenas-scale \
|
||||||
|
tuxedoos \
|
||||||
ubuntu \
|
ubuntu \
|
||||||
ubuntu-budgie \
|
ubuntu-budgie \
|
||||||
ubuntucinnamon \
|
ubuntucinnamon \
|
||||||
|
@ -276,7 +311,9 @@ function os_support() {
|
||||||
ubuntustudio \
|
ubuntustudio \
|
||||||
ubuntu-unity \
|
ubuntu-unity \
|
||||||
vanillaos \
|
vanillaos \
|
||||||
|
ventoy \
|
||||||
void \
|
void \
|
||||||
|
voidpup \
|
||||||
vxlinux \
|
vxlinux \
|
||||||
windows \
|
windows \
|
||||||
xerolinux \
|
xerolinux \
|
||||||
|
@ -289,6 +326,7 @@ function os_homepages(){
|
||||||
local HOMEPAGE=""
|
local HOMEPAGE=""
|
||||||
SIMPLE_NAME="${1}"
|
SIMPLE_NAME="${1}"
|
||||||
case ${SIMPLE_NAME} in
|
case ${SIMPLE_NAME} in
|
||||||
|
agarimos) HOMEPAGE="https://sourceforge.net/projects/agarimos/";;
|
||||||
alma) HOMEPAGE="https://almalinux.org/";;
|
alma) HOMEPAGE="https://almalinux.org/";;
|
||||||
alpine) HOMEPAGE="https://alpinelinux.org/";;
|
alpine) HOMEPAGE="https://alpinelinux.org/";;
|
||||||
android) HOMEPAGE="https://www.android-x86.org/";;
|
android) HOMEPAGE="https://www.android-x86.org/";;
|
||||||
|
@ -296,15 +334,22 @@ function os_homepages(){
|
||||||
archlinux) HOMEPAGE="https://archlinux.org/";;
|
archlinux) HOMEPAGE="https://archlinux.org/";;
|
||||||
archcraft) HOMEPAGE="https://archcraft.io/";;
|
archcraft) HOMEPAGE="https://archcraft.io/";;
|
||||||
arcolinux) HOMEPAGE="https://arcolinux.com/";;
|
arcolinux) HOMEPAGE="https://arcolinux.com/";;
|
||||||
|
artixlinux) HOMEPAGE="https://artixlinux.com/";;
|
||||||
|
athenaos) HOMEPAGE="https://athenaos.org/";;
|
||||||
batocera) HOMEPAGE="https://batocera.org/";;
|
batocera) HOMEPAGE="https://batocera.org/";;
|
||||||
|
bazzite) HOMEPAGE="https://bazzite.gg/";;
|
||||||
|
biglinux) HOMEPAGE="https://www.biglinux.com.br/";;
|
||||||
blendos) HOMEPAGE="https://blendos.co/";;
|
blendos) HOMEPAGE="https://blendos.co/";;
|
||||||
bodhi) HOMEPAGE="https://www.bodhilinux.com/";;
|
bodhi) HOMEPAGE="https://www.bodhilinux.com/";;
|
||||||
bunsenlabs) HOMEPAGE="https://www.bunsenlabs.org/";;
|
bunsenlabs) HOMEPAGE="https://www.bunsenlabs.org/";;
|
||||||
cachyos) HOMEPAGE="https://cachyos.org/";;
|
cachyos) HOMEPAGE="https://cachyos.org/";;
|
||||||
centos-stream) HOMEPAGE="https://www.centos.org/centos-stream/";;
|
centos-stream) HOMEPAGE="https://www.centos.org/centos-stream/";;
|
||||||
|
cereues) HOMEPAGE="https://cereus-linux.sourceforge.io/";;
|
||||||
|
chimeralinux) HOMEPAGE="https://chimera-linux.org/";;
|
||||||
debian) HOMEPAGE="https://www.debian.org/";;
|
debian) HOMEPAGE="https://www.debian.org/";;
|
||||||
deepin) HOMEPAGE="https://www.deepin.org/";;
|
deepin) HOMEPAGE="https://www.deepin.org/";;
|
||||||
devuan) HOMEPAGE="https://www.devuan.org/";;
|
devuan) HOMEPAGE="https://www.devuan.org/";;
|
||||||
|
dietpi) HOMEPAGE="https://dietpi.com/";;
|
||||||
dragonflybsd) HOMEPAGE="https://www.dragonflybsd.org/";;
|
dragonflybsd) HOMEPAGE="https://www.dragonflybsd.org/";;
|
||||||
easyos) HOMEPAGE="https://easyos.org/";;
|
easyos) HOMEPAGE="https://easyos.org/";;
|
||||||
edubuntu) HOMEPAGE="https://www.edubuntu.org/";;
|
edubuntu) HOMEPAGE="https://www.edubuntu.org/";;
|
||||||
|
@ -314,6 +359,8 @@ function os_homepages(){
|
||||||
fedora) HOMEPAGE="https://www.fedoraproject.org/";;
|
fedora) HOMEPAGE="https://www.fedoraproject.org/";;
|
||||||
freebsd) HOMEPAGE="https://www.freebsd.org/";;
|
freebsd) HOMEPAGE="https://www.freebsd.org/";;
|
||||||
freedos) HOMEPAGE="https://freedos.org/";;
|
freedos) HOMEPAGE="https://freedos.org/";;
|
||||||
|
fvoid) HOMEPAGE="https://f-void.sourceforge.io/";;
|
||||||
|
gabeeos) HOMEPAGE="https://gabeeoslinux.sourceforge.io/";;
|
||||||
garuda) HOMEPAGE="https://garudalinux.org/";;
|
garuda) HOMEPAGE="https://garudalinux.org/";;
|
||||||
gentoo) HOMEPAGE="https://www.gentoo.org/";;
|
gentoo) HOMEPAGE="https://www.gentoo.org/";;
|
||||||
ghostbsd) HOMEPAGE="https://www.ghostbsd.org/";;
|
ghostbsd) HOMEPAGE="https://www.ghostbsd.org/";;
|
||||||
|
@ -329,6 +376,7 @@ function os_homepages(){
|
||||||
mageia) HOMEPAGE="https://www.mageia.org/";;
|
mageia) HOMEPAGE="https://www.mageia.org/";;
|
||||||
manjaro) HOMEPAGE="https://manjaro.org/";;
|
manjaro) HOMEPAGE="https://manjaro.org/";;
|
||||||
mxlinux) HOMEPAGE="https://mxlinux.org/";;
|
mxlinux) HOMEPAGE="https://mxlinux.org/";;
|
||||||
|
miyo) HOMEPAGE="https://miyolinux.sourceforge.io/";;
|
||||||
netboot) HOMEPAGE="https://netboot.xyz/";;
|
netboot) HOMEPAGE="https://netboot.xyz/";;
|
||||||
netbsd) HOMEPAGE="https://www.netbsd.org/";;
|
netbsd) HOMEPAGE="https://www.netbsd.org/";;
|
||||||
nixos) HOMEPAGE="https://nixos.org/";;
|
nixos) HOMEPAGE="https://nixos.org/";;
|
||||||
|
@ -346,13 +394,17 @@ function os_homepages(){
|
||||||
rockylinux) HOMEPAGE="https://rockylinux.org/";;
|
rockylinux) HOMEPAGE="https://rockylinux.org/";;
|
||||||
siduction) HOMEPAGE="https://siduction.org/";;
|
siduction) HOMEPAGE="https://siduction.org/";;
|
||||||
slackware) HOMEPAGE="http://www.slackware.com/";;
|
slackware) HOMEPAGE="http://www.slackware.com/";;
|
||||||
|
slax) HOMEPAGE="https://www.slax.org/";;
|
||||||
|
slitaz) HOMEPAGE="https://www.slitaz.org/";;
|
||||||
solus) HOMEPAGE="https://getsol.us/";;
|
solus) HOMEPAGE="https://getsol.us/";;
|
||||||
|
sparkylinux) HOMEPAGE="https://sparkylinux.org/";;
|
||||||
spiral) HOMEPAGE="https://spirallinux.github.io/";;
|
spiral) HOMEPAGE="https://spirallinux.github.io/";;
|
||||||
tails) HOMEPAGE="https://tails.net/";;
|
tails) HOMEPAGE="https://tails.net/";;
|
||||||
tinycore) HOMEPAGE="http://www.tinycorelinux.net/";;
|
tinycore) HOMEPAGE="http://www.tinycorelinux.net/";;
|
||||||
trisquel) HOMEPAGE="https://trisquel.info/";;
|
trisquel) HOMEPAGE="https://trisquel.info/";;
|
||||||
truenas-core) HOMEPAGE="https://www.truenas.com/truenas-core/";;
|
truenas-core) HOMEPAGE="https://www.truenas.com/truenas-core/";;
|
||||||
truenas-scale) HOMEPAGE="https://www.truenas.com/truenas-scale/";;
|
truenas-scale) HOMEPAGE="https://www.truenas.com/truenas-scale/";;
|
||||||
|
tuxedoos) HOMEPAGE="https://www.tuxedocomputers.com/en/TUXEDO-OS_1.tuxedo";;
|
||||||
ubuntu) HOMEPAGE="https://ubuntu.com/";;
|
ubuntu) HOMEPAGE="https://ubuntu.com/";;
|
||||||
ubuntu-budgie) HOMEPAGE="https://ubuntubudgie.org/";;
|
ubuntu-budgie) HOMEPAGE="https://ubuntubudgie.org/";;
|
||||||
ubuntucinnamon) HOMEPAGE="https://ubuntucinnamon.org/";;
|
ubuntucinnamon) HOMEPAGE="https://ubuntucinnamon.org/";;
|
||||||
|
@ -362,7 +414,9 @@ function os_homepages(){
|
||||||
ubuntustudio) HOMEPAGE="https://ubuntustudio.org/";;
|
ubuntustudio) HOMEPAGE="https://ubuntustudio.org/";;
|
||||||
ubuntu-unity) HOMEPAGE="https://ubuntuunity.org/";;
|
ubuntu-unity) HOMEPAGE="https://ubuntuunity.org/";;
|
||||||
vanillaos) HOMEPAGE="https://vanillaos.org/";;
|
vanillaos) HOMEPAGE="https://vanillaos.org/";;
|
||||||
|
ventoy) HOMEPAGE="https://www.ventoy.net/";;
|
||||||
void) HOMEPAGE="https://voidlinux.org/";;
|
void) HOMEPAGE="https://voidlinux.org/";;
|
||||||
|
voidpup) HOMEPAGE="https://sourceforge.net/projects/vpup/";;
|
||||||
vxlinux) HOMEPAGE="https://vxlinux.org/";;
|
vxlinux) HOMEPAGE="https://vxlinux.org/";;
|
||||||
windows) HOMEPAGE="https://www.microsoft.com/en-us/windows/";;
|
windows) HOMEPAGE="https://www.microsoft.com/en-us/windows/";;
|
||||||
xerolinux) HOMEPAGE="https://xerolinux.xyz/";;
|
xerolinux) HOMEPAGE="https://xerolinux.xyz/";;
|
||||||
|
@ -372,6 +426,138 @@ function os_homepages(){
|
||||||
echo "${HOMEPAGE}"
|
echo "${HOMEPAGE}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Not in upstream
|
||||||
|
function releases_agarimos() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_agarimos() {
|
||||||
|
echo plasma xfce lxqt gnome
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_artixlinux() {
|
||||||
|
echo stable
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_artixlinux() {
|
||||||
|
echo base-dinit base-openrc base-runit base-s6 cinnamon-dinit cinnamon-openrc cinnamon-runit cinnamon-s6 lxde-dinit lxde-openrc lxde-runit lxde-s6 lxqt-dinit lxqt-openrc lxqt-runit lxqt-s6 mate-dinit mate-openrc mate-runit mate-s6 plasma-dinit plasma-openrc plasma-runit plasma-s6 xfce-dinit xfce-openrc xfce-runit xfce-s6 community-gtk-openrc community-qt-openrc
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_athenaos() {
|
||||||
|
echo 23.06.23
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_batocera() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_bazzite() {
|
||||||
|
echo $(wget -q -O- "https://api.github.com/repos/ublue-os/bazzite/releases" | grep 'download_url' | grep 'sum' | cut -d '/' -f8 | cut -d'v' -f2 | tr '\n' ' ')
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_biglinux() {
|
||||||
|
echo kde
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_blendos() {
|
||||||
|
# Pull the rss feed
|
||||||
|
wget -q https://sourceforge.net/projects/blendos/rss?path=/ISOs/ -O- | grep -E -o 'https://.*blendOS\.iso.*</media:hash' >/tmp/blendos-isos.rss
|
||||||
|
|
||||||
|
local RLIST
|
||||||
|
RLIST=$(grep -E -o 'https://.*blendOS\.iso.*</media:hash' /tmp/blendos-isos.rss | cut -d/ -f 8-9 | sort -r -t/ --key=2 |grep -e '16878' -e '168[8-9]')
|
||||||
|
echo ${RLIST}
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_bunsenlabs() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_cereus() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_cereus() {
|
||||||
|
echo base lxqt xfce
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_chimeralinux() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_chimeralinux() {
|
||||||
|
echo base gnome
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_dietpi() {
|
||||||
|
echo bios uefi
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_dietpi() {
|
||||||
|
echo bookworm bookworm-installer bullseye bullseye-installer
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_fvoid() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_gabeeos() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_gabeeos() {
|
||||||
|
echo openbox qtile
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_miyo() {
|
||||||
|
echo 2022
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_miyo(){
|
||||||
|
echo Kwin Deboot-Ceres JWM Openbox MATE
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_pureos() {
|
||||||
|
echo 9.0 10.3
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_pureos() {
|
||||||
|
echo gnome plasma
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_slax() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_slax() {
|
||||||
|
echo Debian Slackware
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_slitaz() {
|
||||||
|
echo preferred core core64 loram core-5in1 preinit
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_sparkylinux() {
|
||||||
|
echo 7.1 2023.07
|
||||||
|
}
|
||||||
|
|
||||||
|
function editions_sparkylinux() {
|
||||||
|
echo lxqt mate xfce kde minimalgui minimalcli gameover multimedia rescue
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_tuxedoos() {
|
||||||
|
echo 2
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_ventoy() {
|
||||||
|
echo 1.0.95
|
||||||
|
}
|
||||||
|
|
||||||
|
function releases_voidpup() {
|
||||||
|
echo latest
|
||||||
|
}
|
||||||
|
|
||||||
|
# QUICKEMU STANDARD
|
||||||
|
|
||||||
function releases_alma() {
|
function releases_alma() {
|
||||||
echo 8 9
|
echo 8 9
|
||||||
}
|
}
|
||||||
|
@ -1096,6 +1282,11 @@ EOF
|
||||||
echo "disk_size=\"2G\"" >> "${CONF_FILE}"
|
echo "disk_size=\"2G\"" >> "${CONF_FILE}"
|
||||||
echo "ram=\"128M\"" >> "${CONF_FILE}"
|
echo "ram=\"128M\"" >> "${CONF_FILE}"
|
||||||
;;
|
;;
|
||||||
|
slitaz)
|
||||||
|
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
||||||
|
echo "disk_size=\"4G\"" >> "${CONF_FILE}"
|
||||||
|
echo "ram=\"512M\"" >> "${CONF_FILE}"
|
||||||
|
;;
|
||||||
truenas-scale|truenas-core)
|
truenas-scale|truenas-core)
|
||||||
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
echo "boot=\"legacy\"" >> "${CONF_FILE}"
|
||||||
# the rest is non-functional
|
# the rest is non-functional
|
||||||
|
@ -1153,6 +1344,366 @@ EOF
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# QUICKEMU-EXTENDED ONLY DISTROS!
|
||||||
|
|
||||||
|
function get_agarimos() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
#local DATE=""
|
||||||
|
#local KERNEL=""
|
||||||
|
case ${EDITION} in
|
||||||
|
gnome)
|
||||||
|
URL="https://sourceforge.net/projects/agarimos/files/Gnome"
|
||||||
|
ISO="AgarimOS-Gnome-Catppuccin-Liv-x86_64-6.5.12_1-20231130.iso"
|
||||||
|
;;
|
||||||
|
plasma)
|
||||||
|
URL="https://sourceforge.net/projects/agarimos/files/Plasma"
|
||||||
|
ISO="AgarimOS-Plasma-Dracula-Live-x86_64-6.5.11_1-20231120.iso"
|
||||||
|
;;
|
||||||
|
xfce)
|
||||||
|
URL="https://sourceforge.net/projects/agarimos/files/XFCE4"
|
||||||
|
ISO="AgarimOS-XFCE4-Catppuccin-Live-x86_64-6.5.12_1-20231122.iso"
|
||||||
|
;;
|
||||||
|
lxqt)
|
||||||
|
URL="https://sourceforge.net/projects/agarimos/files/LXQT-KWIN"
|
||||||
|
ISO="AgarimOS-LXQT-KWIN-Dracula-Live-x86_64-6.5.12_1-20231121.iso"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_artixlinux() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://iso.artixlinux.org/iso"
|
||||||
|
DATE=$(wget -q -O- ${URL}/sha256sums | cut -d'-' -f4 | head -1)
|
||||||
|
ISO="artix-${EDITION}-${DATE}-x86_64.iso"
|
||||||
|
HASH=$(wget -q -O- ${URL}/sha256sums | grep "${ISO}")
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_athenaos() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
local TMPURL=""
|
||||||
|
local ISO="athena-2023.06.23-x86_64.iso"
|
||||||
|
TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/athena-iso/files/v23.06.23/${ISO}/download" 2>&1 | grep -i Location | cut -d' ' -f4)
|
||||||
|
URL=${TMPURL%\?*}
|
||||||
|
echo "${URL} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_batocera() {
|
||||||
|
local HASH=""
|
||||||
|
local URL="https://mirrors.o2switch.fr/batocera/x86_64/stable/last"
|
||||||
|
local ISO="$(curl -sl ${URL}/ | grep -e 'batocera.*img.gz'|cut -d\" -f2)"
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_bazzite() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://github.com/ublue-os/bazzite/releases/download/v${RELEASE}"
|
||||||
|
|
||||||
|
ISO=$(wget -q -O- "https://api.github.com/repos/ublue-os/bazzite/releases" | grep 'download_url' | grep 'sum' | cut -d '"' -f4 | cut -d'.' -f1-5 | grep "${RELEASE}" | cut -d'/' -f9)
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256sum" | grep 'SHA256' | cut -d' ' -f4)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_biglinux() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://iso.biglinux.com.br/"
|
||||||
|
ISO=$(grep -Eo 'biglinux_[0-9]{4}(-[0-9]{2}){2}_k[0-9]{2,3}.iso' <(wget -q -O- ${URL}) | sort -u | tail -n2 | head -n1)
|
||||||
|
HASH=$(curl -s ${URL}${ISO}.md5 | grep -Eo '[[:alnum:]]{32}')
|
||||||
|
echo "${URL}${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_cereus() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local DATE=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/${EDITION}"
|
||||||
|
DATE=$(wget -q -O- https://sourceforge.net/projects/cereus-linux/files/isos/beta/latest/base/SHA256SUM | grep 'x86_64-base' | rev | cut -d'-' -f1 | rev | cut -d'.' -f1-3)
|
||||||
|
ISO="cereus-beta-live-x86_64-${EDITION}-${DATE}.iso"
|
||||||
|
case ${EDITION} in
|
||||||
|
base) HASH=$(wget -q -O- "${URL}/SHA256SUM" | grep "${ISO}" | cut -d' ' -f1);;
|
||||||
|
*) HASH=$(wget -q -O- "${URL}/SHA256" | grep "${ISO}" | cut -d' ' -f1);;
|
||||||
|
esac
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_chimeralinux() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local DATE=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://repo.chimera-linux.org/live/${RELEASE}"
|
||||||
|
DATE=$(wget -q -O- "${URL}/sha256sums.txt" | head -n1 | cut -d'-' -f5)
|
||||||
|
ISO="chimera-linux-x86_64-LIVE-${DATE}-${EDITION}.iso"
|
||||||
|
HASH=$(wget -q -O- "${URL}/sha256sums.txt" | grep 'x86_64-LIVE' | grep "${EDITION}" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_dietpi() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://dietpi.com/downloads/images"
|
||||||
|
case ${RELEASE} in
|
||||||
|
bios)
|
||||||
|
case ${EDITION} in
|
||||||
|
bookworm)
|
||||||
|
local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm.7z"
|
||||||
|
;;
|
||||||
|
bullseye)
|
||||||
|
local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye.7z"
|
||||||
|
;;
|
||||||
|
bookworm-installer)
|
||||||
|
local ISO="DietPi_NativePC-BIOS-x86_64-Bookworm_Installer.7z"
|
||||||
|
;;
|
||||||
|
bullseye-installer)
|
||||||
|
local ISO="DietPi_NativePC-BIOS-x86_64-Bullseye_Installer.7z"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
uefi)
|
||||||
|
case ${EDITION} in
|
||||||
|
bookworm-installer)
|
||||||
|
local ISO="DietPi_NativePC-UEFI-x86_64-Bookworm_Installer.7z"
|
||||||
|
;;
|
||||||
|
bullseye-installer)
|
||||||
|
local ISO="DietPi_NativePC-UEFI-x86_64-Bullseye_Installer.7z"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
HASH=$(wget -q -O- "${URL}/SHASUMS.txt" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_fvoid() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
local TMPURL=""
|
||||||
|
TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/f-void/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4)
|
||||||
|
URL=${TMPURL%\?*}
|
||||||
|
echo "${URL} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_gabeeos() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
# local TMPURL=""
|
||||||
|
# TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/gabeeos/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4)
|
||||||
|
case ${EDITION} in
|
||||||
|
openbox)
|
||||||
|
ISO="gabeeOSLinux-Openbox-Cherry-x86_64-6.1.25_1-20230502.iso"
|
||||||
|
URL="https://sourceforge.net/projects/gabeeoslinux/files/Distro/Openbox/beta"
|
||||||
|
HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f2)
|
||||||
|
;;
|
||||||
|
qtile)
|
||||||
|
ISO="gabeeOSLinux-Qtile-x86_64-6.1.25_1-20230508.iso"
|
||||||
|
URL="https://sourceforge.net/projects/gabeeoslinux/files/Distro/Qtile/beta"
|
||||||
|
HASH=$(wget -q -O- ${URL}/SHA256 | grep "${ISO}" | cut -d' ' -f4)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_miyo() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local URL="https://sourceforge.net/projects/miyolinux/files/${RELEASE}-Release/${EDITION}"
|
||||||
|
|
||||||
|
case ${EDITION} in
|
||||||
|
Kwin) ISO="miyo-kwin-x86_64-BIOS-20220526.iso";;
|
||||||
|
Deboot-Ceres) ISO="Deboot-Ceres-x86-64-BIOS-20220415.iso";;
|
||||||
|
JWM) ISO="miyolinux-jwm-x86_64-BIOS-20220226.iso";;
|
||||||
|
Openbox) ISO="MiyoLinux-x86_64-BIOS-20220129.iso";;
|
||||||
|
MATE) ISO="mate-minimal-x86_64-BIOS-20220107.iso";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_pureos() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL=""
|
||||||
|
case ${RELEASE} in
|
||||||
|
9)
|
||||||
|
URL="https://downloads.puri.sm/9/live/${EDITION}/2020-08-06"
|
||||||
|
ISO="pureos-${RELEASE}-${EDITION}-live_20200806-amd64.hybrid.iso"
|
||||||
|
HASH=$(wget -q -O- "${URL}/checksums.sha256sum" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
;;
|
||||||
|
10)
|
||||||
|
URL="https://downloads.puri.sm/10/${EDITION}/2023-06-14"
|
||||||
|
ISO="pureos-${RELEASE}-${EDITION}-live-20230614_amd64.iso"
|
||||||
|
HASH=$(wget -q -O- "${URL}/pureos-${RELEASE}-${EDITION}-live-20230614_amd64.checksums_sha256.txt" | head -1 | cut -d' ' -f1)
|
||||||
|
esac
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_rebornos() {
|
||||||
|
local ISO=$(curl -s 'https://www.rebornos.org/download/' | grep -ohE 'https://pub-cb7a4d4f7a974896b3bf40c52d1defbc.r2.dev/RebornOS-ISO/(rebornos_xfce_minimal|rebornos_iso)-[0-9]{4}.[0-9]{2}.[0-9]{2}-x86_64.iso' | tail -n1)
|
||||||
|
local HASH=$(curl -s 'https://www.rebornos.org/download/' | grep -ozP 'Checksum MD5:.*[0-9a-fA-F]{32}' | grep -zoP '[0-9a-fA-F]{32}' | cut -d '' -f1)
|
||||||
|
echo "${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_slax() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://slax.org/download-slax.php?a=64bit&b=${EDITION}"
|
||||||
|
case ${EDITION} in
|
||||||
|
Debian) ISO="slax-64bit-11.6.0.iso"
|
||||||
|
HASH="b3771211c4485fec2e4f2418b06125f3e53424c5"
|
||||||
|
;;
|
||||||
|
Slackware) ISO="slax-64bit-15.0.1.iso"
|
||||||
|
HASH="4ec9dff930251fbae847a56b18d53505147faf84"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_slitaz() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO="slitaz-rolling-${RELEASE}"
|
||||||
|
local URL="http://mirror.slitaz.org/iso/rolling"
|
||||||
|
case ${RELEASE} in
|
||||||
|
preferred) ISO="slitaz-rolling";;
|
||||||
|
*) ISO="slitaz-rolling-${RELEASE}";;
|
||||||
|
esac
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO}.iso ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_sparkylinux() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
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}";;
|
||||||
|
esac
|
||||||
|
HASH=$(wget -q -O- ${URL}/${ISO}.allsums.txt | head -2 | grep 'iso' | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO}" "${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_tuxedoos() {
|
||||||
|
local DATE="202309111354"
|
||||||
|
local HASH=""
|
||||||
|
local ISO="TUXEDO-OS-${RELEASE}-${DATE}.iso"
|
||||||
|
local URL="https://os.tuxedocomputers.com/"
|
||||||
|
HASH=$(wget -q -O- "${URL}/checksums" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_ventoy() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO="ventoy-${RELEASE}-livecd.iso"
|
||||||
|
local URL="https://github.com/ventoy/Ventoy/releases/download/v${RELEASE}"
|
||||||
|
HASH="$(wget -q -O- "${URL}/sha256.txt" | grep "${ISO}" | cut -d' ' -f4)"
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_voidpup() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
local TMPURL=""
|
||||||
|
TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/vpup/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4)
|
||||||
|
URL=${TMPURL%\?*}
|
||||||
|
echo "${URL} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_slax() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
local URL="https://slax.org/download-slax.php?a=64bit&b=${EDITION}"
|
||||||
|
case ${EDITION} in
|
||||||
|
Debian) ISO="slax-64bit-11.6.0.iso"
|
||||||
|
HASH="b3771211c4485fec2e4f2418b06125f3e53424c5"
|
||||||
|
;;
|
||||||
|
Slackware) ISO="slax-64bit-15.0.1.iso"
|
||||||
|
HASH="4ec9dff930251fbae847a56b18d53505147faf84"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_slitaz() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO="slitaz-rolling-${RELEASE}"
|
||||||
|
local URL="http://mirror.slitaz.org/iso/rolling"
|
||||||
|
case ${RELEASE} in
|
||||||
|
preferred) ISO="slitaz-rolling";;
|
||||||
|
*) ISO="slitaz-rolling-${RELEASE}";;
|
||||||
|
esac
|
||||||
|
HASH=$(wget -q -O- "${URL}/${ISO}.md5" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO}.iso ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_sparkylinux() {
|
||||||
|
local EDITION="${1:-}"
|
||||||
|
local HASH=""
|
||||||
|
local ISO=""
|
||||||
|
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}";;
|
||||||
|
esac
|
||||||
|
HASH=$(wget -q -O- ${URL}/${ISO}.allsums.txt | head -2 | grep 'iso' | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO}" "${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_tuxedoos() {
|
||||||
|
local DATE="202309111354"
|
||||||
|
local HASH=""
|
||||||
|
local ISO="TUXEDO-OS-${RELEASE}-${DATE}.iso"
|
||||||
|
local URL="https://os.tuxedocomputers.com/"
|
||||||
|
HASH=$(wget -q -O- "${URL}/checksums" | grep "${ISO}" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_ventoy() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO="ventoy-${RELEASE}-livecd.iso"
|
||||||
|
local URL="https://github.com/ventoy/Ventoy/releases/download/v${RELEASE}"
|
||||||
|
HASH="$(wget -q -O- "${URL}/sha256.txt" | grep "${ISO}" | cut -d' ' -f4)"
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_voidpup() {
|
||||||
|
local HASH=""
|
||||||
|
local URL=""
|
||||||
|
local TMPURL=""
|
||||||
|
TMPURL=$(wget -q -S -O- --max-redirect=0 "https://sourceforge.net/projects/vpup/files/latest/download" 2>&1 | grep -i Location | cut -d' ' -f4)
|
||||||
|
URL=${TMPURL%\?*}
|
||||||
|
echo "${URL} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_vxlinux() {
|
||||||
|
local HASH=""
|
||||||
|
local ISO="vx-${RELEASE}.iso"
|
||||||
|
local URL="https://github.com/VX-Linux/main/releases/download/${RELEASE}"
|
||||||
|
|
||||||
|
HASH=$(wget -q -O- "${URL}/vx-${RELEASE}.md5" | cut -d' ' -f1)
|
||||||
|
echo "${URL}/${ISO} ${HASH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# QUICKEMU STANDARD
|
||||||
|
|
||||||
function get_alma() {
|
function get_alma() {
|
||||||
local EDITION="${1:-}"
|
local EDITION="${1:-}"
|
||||||
local HASH=""
|
local HASH=""
|
||||||
|
@ -2714,7 +3265,10 @@ create_vm() {
|
||||||
bzip2 -d "${VM_PATH}/${ISO}"
|
bzip2 -d "${VM_PATH}/${ISO}"
|
||||||
ISO="${ISO/.bz2/}"
|
ISO="${ISO/.bz2/}"
|
||||||
fi
|
fi
|
||||||
|
if [ ${OS} == "dietpi" ] && [[ $ISO =~ ".7z" ]]; then
|
||||||
|
7zip x -o${VM_PATH} ${VM_PATH}/${ISO}
|
||||||
|
ISO=$(ls ${VM_PATH} | grep -i '.iso')
|
||||||
|
fi
|
||||||
if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then
|
if [ ${OS} == "reactos" ] && [[ $ISO =~ ".zip" ]]; then
|
||||||
unzip ${VM_PATH}/${ISO} -d ${VM_PATH}
|
unzip ${VM_PATH}/${ISO} -d ${VM_PATH}
|
||||||
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
|
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
|
||||||
|
@ -2782,8 +3336,15 @@ if [ -n "${2}" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
# Handle odd missing dietpi combinations
|
||||||
# Handle odd missing fedora cominations
|
if [[ $OS == dietpi ]] ; then
|
||||||
|
if [[ ${RELEASE} = "uefi" && ${EDITION} = "bookworm" ]] || [[ ${RELEASE} = "uefi" && ${EDITION} = "bullseye" ]] ; then
|
||||||
|
echo "ERROR! Unsupported combination"
|
||||||
|
echo "Only installers are supported for uefi, please choose another Release or Edition"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Handle odd missing fedora combinations
|
||||||
if [[ $OS == fedora ]] ; then
|
if [[ $OS == fedora ]] ; then
|
||||||
if [[ ${RELEASE} = "33" && ${EDITION} = "i3" ]] || [[ ${RELEASE} = "34" && ${EDITION} = "Cinnamon" ]] || [[ "${RELEASE}" < "39" && ${EDITION} = "Onyx" ]]; then
|
if [[ ${RELEASE} = "33" && ${EDITION} = "i3" ]] || [[ ${RELEASE} = "34" && ${EDITION} = "Cinnamon" ]] || [[ "${RELEASE}" < "39" && ${EDITION} = "Onyx" ]]; then
|
||||||
echo "ERROR! Unsupported combination"
|
echo "ERROR! Unsupported combination"
|
||||||
|
|
Loading…
Reference in New Issue