{ liminix , lib , zyxel-bootconfig }: { ensureActiveImage, primaryMtdPartition, secondaryMtdPartition, bootConfigurationMtdPartition, kernelCommandLineSource }: let inherit (liminix.services) oneshot; activeImageIndex = if ensureActiveImage == "primary" then 0 else 1; in oneshot { name = "zyxel-boot-configure"; up = '' set -- $(cat /proc/device-tree/chosen/bootargs) for x in "$@"; do case "$x" in bootImage=*) BOOT_IMAGE="''${x#bootImage=}" echo "Current boot image is $BOOT_IMAGE." ;; esac done if test -z "$BOOT_IMAGE"; then echo "No valid image was provided in the kernel command line." exit 1 else ${lib.getExe zyxel-bootconfig} ${bootConfigurationMtdPartition} set-image-status "$BOOT_IMAGE" valid ${lib.getExe zyxel-bootconfig} ${bootConfigurationMtdPartition} set-active-image ${toString activeImageIndex} echo "Active image is now ${ensureActiveImage}" fi ''; }