#!/bin/bash . /etc/init.d/functions.sh || exit 1 die() { eerror "$*"; exit 1; } set -e cd ${HOME}/trunk/src/scripts/ if [[ -z ${BOARD} ]] ; then die "missing BOARD" fi IMAGES="${HOME}/trunk/src/build/images/${BOARD}" BUILD="/build/${BOARD}" ARG_CLEAN=false ARG_DEV="/dev/sdc" ARG_DEV_USER=false ARG_PRETEND=false ARG_NOPKG=false ARG_VERBOSE=false ARG_TEST=false while [[ $# -ne 0 ]] ; do case $1 in --clean) ARG_CLEAN=true;; -p) ARG_PRETEND=true;; -y) shift; ARG_DEV=$1; ARG_DEV_USER=true;; -v) ARG_VERBOSE=true;; -t) ARG_TEST=true;; --nousepkg) ARG_NOPKG=true;; *) echo "unknown opt: $*"; exit 1;; esac shift done piperet() { set -- ${PIPESTATUS[@]/0}; [[ $# -eq 0 ]]; } run() { set +e ebegin "$*" if ! ${ARG_PRETEND} ; then local log="${IMAGES}"/log.${1##*/} if ${ARG_VERBOSE} ; then "$@" |& tee "${log}" else "$@" >& "${log}" fi piperet fi eend $? || exit $? set -e } tfe() { ($1 && echo $2 || :); } mkdir -p "${IMAGES}" rm -f "${IMAGES}"/log.* einfo "Log root: ${IMAGES}/log." run ./update_chroot if ${ARG_CLEAN} || [[ ! -d ${BUILD} ]] ; then run sudo rm -rf "${BUILD}" run ./setup_board --board=${BOARD} --skip_chroot_upgrade if [ $? -ne 0 ] ; then run sudo rm -rf "${BUILD}" exit 1 fi fi run ./build_packages \ --board=${BOARD} \ --nowithdebug \ --skip_chroot_upgrade \ $(tfe ${ARG_NOPKG} --nousepkg) \ $(tfe ${ARG_TEST} --withtest) BUILD_IMG="./build_image --board=${BOARD} --noenable_rootfs_verification $(tfe ${ARG_TEST} --test) dev" run ${BUILD_IMG} IMG_TO_USB="./image_to_usb.sh --board=${BOARD} -y --to=${ARG_DEV}" if ${ARG_DEV_USER} ; then run ${IMG_TO_USB} sync & fi cat <