1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/usr/bin/env bash
- die() {
- cat <<EOF >&2
- Error: $@
- Usage: ${0} -c GENIMAGE_CONFIG_FILE
- EOF
- exit 1
- }
- # Parse arguments and put into argument list of the script
- opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $?
- eval set -- "$opts"
- GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
- while true ; do
- case "$1" in
- -c)
- GENIMAGE_CFG="${2}";
- shift 2 ;;
- --) # Discard all non-option parameters
- shift 1;
- break ;;
- *)
- die "unknown option '${1}'" ;;
- esac
- done
- [ -n "${GENIMAGE_CFG}" ] || die "Missing argument"
- # Pass an empty rootpath. genimage makes a full copy of the given rootpath to
- # ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk
- # space. We don't rely on genimage to build the rootfs image, just to insert a
- # pre-built one in the disk image.
- trap 'rm -rf "${ROOTPATH_TMP}"' EXIT
- ROOTPATH_TMP="$(mktemp -d)"
- rm -rf "${GENIMAGE_TMP}"
- genimage \
- --rootpath "${ROOTPATH_TMP}" \
- --tmppath "${GENIMAGE_TMP}" \
- --inputpath "${BINARIES_DIR}" \
- --outputpath "${BINARIES_DIR}" \
- --config "${GENIMAGE_CFG}"
- if grep -Eq "^BR2_PACKAGE_HOST_BMAP_TOOLS=y$" "${BR2_CONFIG}"; then
- while IFS= read -r image; do
- image_path="${BINARIES_DIR}/${image}"
- if ! test -f "${image_path}"; then
- continue
- fi
- bmaptool create "${image_path}" -o "${image_path}.bmap"
- gzip -c "${image_path}" > "${image_path}.gz"
- done < <(grep '^image ' "${GENIMAGE_CFG}" | cut -d ' ' -f 2)
- fi
|