@@ -342,6 +342,24 @@ is_preinstalled_app() {
342342 case " $1 " in kali|homeassistant|openhab|omv) return 0 ;; * ) return 1 ;; esac
343343}
344344
345+ split_desktop_tail () {
346+ local tail=" $1 "
347+ local variant=" $tail " app=" "
348+
349+ case " $tail " in
350+ * -backported-mesa)
351+ variant=" ${tail% -backported-mesa} "
352+ app=" backported-mesa"
353+ ;;
354+ * -ufs)
355+ variant=" ${tail% -ufs} "
356+ app=" ufs"
357+ ;;
358+ esac
359+
360+ printf ' %s\n' " $variant " " $app "
361+ }
362+
345363strip_img_ext () {
346364 sed -E ' s/(\.img(\.(xz|zst|gz))?)$//' <<< " $1"
347365}
@@ -373,12 +391,34 @@ extract_file_extension() {
373391 return
374392 fi
375393
394+ # LK bootloader artifacts
395+ # ...minimal.lk.bin.xz -> lk.bin.xz
396+ # ...minimal.lk.bin -> lk.bin
397+ if [[ " $n " == * " .lk.bin" ]] || [[ " $n " == * " .lk.bin." * ]]; then
398+ if [[ " $n " == * " .lk.bin." * ]]; then
399+ echo " lk.bin.${n##* .lk.bin.} "
400+ else
401+ echo " lk.bin"
402+ fi
403+ return
404+ fi
405+
376406 # rootfs images
377407 if [[ " $n " == * " .rootfs.img." * ]]; then
378408 echo " rootfs.img.${n##* .rootfs.img.} "
379409 return
380410 fi
381411
412+ # fip images
413+ if [[ " $n " == * " .fip.img." * ]]; then
414+ echo " fip.img.${n##* .fip.img.} "
415+ return
416+ fi
417+ if [[ " $n " == * .fip.img ]]; then
418+ echo " fip.img"
419+ return
420+ fi
421+
382422 # oowow images
383423 if [[ " $n " == * " .oowow.img." * ]]; then
384424 echo " oowow.img.${n##* .oowow.img.} "
@@ -485,6 +525,7 @@ parse_image_name() {
485525
486526 local ver=" " board=" " distro=" " branch=" " kernel=" " tail=" "
487527 local variant=" server" app=" " storage=" "
528+ local desktop_variant=" " desktop_app=" "
488529
489530 if is_version_token " ${p[1]:- } " ; then
490531 ver=" ${p[1]} " ; board=" ${p[2]} " ; distro=" ${p[3]} "
@@ -499,12 +540,18 @@ parse_image_name() {
499540 if is_preinstalled_app " $suffix " ; then
500541 app=" $suffix "
501542 else
502- [[ " ${suffix##* -} " == " ufs" ]] && storage =" ufs"
543+ [[ " ${suffix##* -} " == " ufs" ]] && app =" ufs"
503544 fi
504545 fi
505546
506547 [[ " $tail " == minimal* ]] && variant=" minimal"
507- [[ " $name " == * _desktop.img.* ]] && variant=" $tail "
548+ if [[ " $name " == * _desktop* ]]; then
549+ mapfile -t desktop_parts < <( split_desktop_tail " $tail " )
550+ desktop_variant=" ${desktop_parts[0]:- $tail } "
551+ desktop_app=" ${desktop_parts[1]:- } "
552+ variant=" $desktop_variant "
553+ app=" $desktop_app "
554+ fi
508555
509556 printf ' %s\n' " $ver " " $board " " $distro " " $branch " " $variant " " $app " " $storage "
510557}
@@ -610,7 +657,7 @@ cat "$tmpdir/a.txt" "$tmpdir/bcd.txt" >"$feed"
610657 esac
611658 # ignore non-boot pseudo prefixes
612659 case " $BOOT_SUFFIX " in
613- " " |img|oowow) BOOT_SUFFIX=" " ;;
660+ " " |img|oowow|fip ) BOOT_SUFFIX=" " ;;
614661 esac
615662
616663 # U-Boot ROM suffix
@@ -627,6 +674,10 @@ cat "$tmpdir/a.txt" "$tmpdir/bcd.txt" >"$feed"
627674 REDI_VARIANT=" ${VARIANT} -qcow2"
628675 elif [[ " $FILE_EXTENSION " == hyperv.zip* ]]; then
629676 REDI_VARIANT=" ${VARIANT} -hyperv"
677+ elif [[ " $FILE_EXTENSION " == fip.img* ]]; then
678+ REDI_VARIANT=" ${REDI_VARIANT} -fip"
679+ elif [[ " $FILE_EXTENSION " == lk.bin* ]]; then
680+ REDI_VARIANT=" ${REDI_VARIANT} -lk-bin"
630681 else
631682 # Append boot flavor for non-cloud images
632683 [[ -n " $BOOT_SUFFIX " ]] && REDI_VARIANT=" ${REDI_VARIANT} -${BOOT_SUFFIX} "
0 commit comments