DistroHopper/actions/fedora
Claude 6d921d220e
Fix bugs in dh, pclinuxos; add easyos, fedora, mageia, zorin actions
- dh: fix comment with stray '#TODO' in desktop entry
- dh: fix silent unconditional exit bug in renew_ready() and
  renew_ready_vms() (cd || echo; exit 1 → cd || { echo; exit 1; })
- dh: implement distrohopper_about() and help_show() using yad dialogs
- dh: fix renew_supported_vms() logic where execmd was never set when
  editions existed and interminal=yes; separate terminal flag from
  execmd assignment
- dh: detect available terminal emulator (sakura → xterm → x-terminal-emulator)
  instead of hard-coding sakura
- actions/pclinuxos: fix URL variable used before definition in get_()
- actions/: add easyos, fedora, mageia, zorin from TODO/ (complete implementations)

https://claude.ai/code/session_01M2UXTtQwzcGCNRnFiP2efQ
2026-02-28 19:25:15 +00:00

47 lines
2.2 KiB
Text

# Template file for 'fedora'
OSNAME="fedora"
PRETTY="Fedora"
ICON=""
BASEDOF="-"
HOMEPAGE="https://www.fedoraproject.org"
DESCRIPTION="Innovative platform for hardware, clouds, and containers, built with love by you"
CREDENTIALS="-"
function releases_() {
#shellcheck disable=SC2046,SC2005
echo $(web_pipe "https://getfedora.org/releases.json" | jq -r 'map(.version) | unique | .[]' | sed 's/ /_/g' | sort -r)
}
function editions_() {
#shellcheck disable=SC2046,SC2005
if [[ -z ${RELEASE} ]]; then
echo $(web_pipe "https://getfedora.org/releases.json" | jq -r "map(select(.arch==\"x86_64\" and .variant!=\"Labs\" and .variant!=\"IoT\" and .variant!=\"Container\" and .variant!=\"Cloud\" and .variant!=\"Everything\" and .subvariant!=\"Security\" and .subvariant!=\"Server_KVM\" and .subvariant!=\"SoaS\")) | map(.subvariant) | unique | .[]")
else
echo $(web_pipe "https://getfedora.org/releases.json" | jq -r "map(select(.arch==\"x86_64\" and .version==\"${RELEASE/_/ }\" and .variant!=\"Labs\" and .variant!=\"IoT\" and .variant!=\"Container\" and .variant!=\"Cloud\" and .variant!=\"Everything\" and .subvariant!=\"Security\" and .subvariant!=\"Server_KVM\" and .subvariant!=\"SoaS\")) | map(.subvariant) | unique | .[]")
fi
}
function get_() {
local HASH=""
local ISO=""
local JSON=""
local URL=""
local VARIANT=""
case ${EDITION} in
Server|Kinoite|Onyx|Silverblue|Sericea|Workstation) VARIANT="${EDITION}";;
*) VARIANT="Spins";;
esac
# The naming of 41 Beta with a space is problematic so we replaced it with an underscore
# but we need to convert it back to a space for the URL search in the JSON
#shellcheck disable=SC2086
# if RELEASE contains an underscore, replace it with a space
if [[ "${RELEASE}" == *"_"* ]]; then
RELEASE="${RELEASE/_/ }"
fi
# shellcheck disable=SC2086
JSON=$(web_pipe "https://getfedora.org/releases.json" | jq '.[] | select(.variant=="'${VARIANT}'" and .subvariant=="'"${EDITION}"'" and .arch=="x86_64" and .version=="'"${RELEASE}"'" and (.link | endswith(".iso")))')
URL=$(echo "${JSON}" | jq -r '.link' | head -n1)
HASH=$(echo "${JSON}" | jq -r '.sha256' | head -n1)
echo "${URL} ${HASH}"
}