Skip to content

Commit 4fabbe3

Browse files
efectnigorpecovnik
authored andcommitted
json-generation: fix some app edge cases
1 parent 6c45bdb commit 4fabbe3

1 file changed

Lines changed: 54 additions & 3 deletions

File tree

scripts/generate-armbian-images-json.sh

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
345363
strip_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

Comments
 (0)