#!/bin/sh -efu
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (C) 2012  Alexey Knyshev <alexey.knyshev@gmail.com>

# shellcheck source=tools/mki-sh-functions
. "${0%/*}"/mki-sh-functions

verbose "has started executing."

pkgs="${PACKAGES_REQUIRED_PACK_UBIFS:-}"

outname="${MKI_OUTNAME:-outname}"
outname="${outname##*/}"
outname="/.our/$outname"

: "${PACK_UBI_MIN_IO_SIZE:?PACK_UBI_MIN_IO_SIZE must be specified}"
: "${PACK_UBI_VOL_TYPE:?PACK_UBI_VOL_TYPE must be specified}"
: "${PACK_UBI_VOL_NAME:?PACK_UBI_VOL_NAME must be specified}"

[ -d "$chroot"  ] ||
	fatal "$dir: not look like work directory of hasher."

mki-install $pkgs ||
	fatal "failed to install packages: $pkgs."

run_chrooted "$chroot" << EOF
#!/bin/sh -efu

ubifsimg='/tmp/ubifs.img'
ubicfg='/tmp/ubi.ini'

exclude=
for d in ${MKI_EXCLUDE:-}; do
	exclude="\$exclude -z \$d"
done

echo 'mkimage: pack-ubifs: Packing ubifs image ...'
/usr/sbin/mkfs.ubifs -m $PACK_UBI_MIN_IO_SIZE ${PACK_UBIFS_OPTS:-} \$exclude -z .in -z .host -z .fakedata -r /.image -o "\$ubifsimg"

cat > "\$ubicfg" << EOT
[rootfs-image]
mode=ubi
image=\$ubifsimg
vol_id=${PACK_UBI_VOL_ID:-0}
vol_type=$PACK_UBI_VOL_TYPE
vol_name=$PACK_UBI_VOL_NAME
${PACK_UBI_VOL_SIZE:+vol_size=$PACK_UBI_VOL_SIZE}
${PACK_UBI_VOL_ALIGN:+vol_alignment=$PACK_UBI_VOL_ALIGN}
${PACK_UBI_VOL_FLAGS:+vol_flags=$PACK_UBI_VOL_FLAGS}
EOT

echo 'mkimage: pack-ubifs: Ubinizing ubifs image ...'
/usr/sbin/ubinize -o $outname -m $PACK_UBI_MIN_IO_SIZE ${PACK_UBI_OPTS:-} "\$ubicfg"

rm -f -- "\$ubifsimg"
rm -f -- "\$ubicfg"

echo "mkimage: pack-ubifs: Pack result: $outname ..."
EOF

mki-copy-our2out
