# # Copyright (C) 2026, Digi International Inc. # ######################## # LXC artifact ######################## do_image_lxc_bundle() { rootfs_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.tar.xz" if [ ! -f "${rootfs_tar}" ]; then rootfs_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.tar.xz" fi lxc_tar="${DEPLOY_DIR_IMAGE}/${LXC_OUTPUT_NAME}" workdir="$(mktemp -d)" trap 'rm -rf "${workdir}"' EXIT if [ ! -f "${rootfs_tar}" ]; then bbfatal "Expected rootfs tarball not found: ${rootfs_tar}" fi lxc_dir="${workdir}/${CONTAINER_NAME}" mkdir -p "${lxc_dir}/rootfs" bbnote "Extracting rootfs for LXC bundle..." tar -xf "${rootfs_tar}" -C "${lxc_dir}/rootfs" config_in="${LXC_CONFIG_FILE}" if [ ! -f "${config_in}" ]; then bbfatal "LXC config file not found for CONTAINER_TYPE='${CONTAINER_TYPE}' and MACHINE='${MACHINE}': ${config_in}" fi sed \ -e "s|@LXC_ARCH@|${TARGET_ARCH}|g" \ -e "s|@LXC_FOLDER@|${LXC_FOLDER}|g" \ -e "s|@CONTAINER_NAME@|${CONTAINER_NAME}|g" \ -e "s|@CONTAINER_INIT_MANAGER@|${CONTAINER_INIT_MANAGER}|g" \ -e "s|@CONTAINER_INIT_SCRIPT@|${CONTAINER_INIT_SCRIPT}|g" \ "${config_in}" > "${lxc_dir}/config" tar -C "${workdir}" -cJf "${lxc_tar}" "${CONTAINER_NAME}" if [ ! -s "${lxc_tar}" ]; then bbfatal "LXC bundle was not generated correctly: ${lxc_tar}" fi bbnote "LXC bundle ready: ${lxc_tar}" } addtask image_lxc_bundle after do_image_complete before do_build