1*4882a593Smuzhiyun#!/usr/bin/env bash 2*4882a593Smuzhiyun 3*4882a593Smuzhiyundie() { 4*4882a593Smuzhiyun cat <<EOF >&2 5*4882a593SmuzhiyunError: $@ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunUsage: ${0} -c GENIMAGE_CONFIG_FILE 8*4882a593SmuzhiyunEOF 9*4882a593Smuzhiyun exit 1 10*4882a593Smuzhiyun} 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun# Parse arguments and put into argument list of the script 13*4882a593Smuzhiyunopts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $? 14*4882a593Smuzhiyuneval set -- "$opts" 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunGENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunwhile true ; do 19*4882a593Smuzhiyun case "$1" in 20*4882a593Smuzhiyun -c) 21*4882a593Smuzhiyun GENIMAGE_CFG="${2}"; 22*4882a593Smuzhiyun shift 2 ;; 23*4882a593Smuzhiyun --) # Discard all non-option parameters 24*4882a593Smuzhiyun shift 1; 25*4882a593Smuzhiyun break ;; 26*4882a593Smuzhiyun *) 27*4882a593Smuzhiyun die "unknown option '${1}'" ;; 28*4882a593Smuzhiyun esac 29*4882a593Smuzhiyundone 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun[ -n "${GENIMAGE_CFG}" ] || die "Missing argument" 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun# Pass an empty rootpath. genimage makes a full copy of the given rootpath to 34*4882a593Smuzhiyun# ${GENIMAGE_TMP}/root so passing TARGET_DIR would be a waste of time and disk 35*4882a593Smuzhiyun# space. We don't rely on genimage to build the rootfs image, just to insert a 36*4882a593Smuzhiyun# pre-built one in the disk image. 37*4882a593Smuzhiyun 38*4882a593Smuzhiyuntrap 'rm -rf "${ROOTPATH_TMP}"' EXIT 39*4882a593SmuzhiyunROOTPATH_TMP="$(mktemp -d)" 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunrm -rf "${GENIMAGE_TMP}" 42*4882a593Smuzhiyun 43*4882a593Smuzhiyungenimage \ 44*4882a593Smuzhiyun --rootpath "${ROOTPATH_TMP}" \ 45*4882a593Smuzhiyun --tmppath "${GENIMAGE_TMP}" \ 46*4882a593Smuzhiyun --inputpath "${BINARIES_DIR}" \ 47*4882a593Smuzhiyun --outputpath "${BINARIES_DIR}" \ 48*4882a593Smuzhiyun --config "${GENIMAGE_CFG}" 49