| Index: cros_workon
|
| diff --git a/cros_workon b/cros_workon
|
| index 904997f36a250a995a7ad14074c21e89008d614c..ff4414fc9c3ee930da22dc692f1020d789be4129 100755
|
| --- a/cros_workon
|
| +++ b/cros_workon
|
| @@ -20,6 +20,8 @@ get_default_board
|
|
|
| DEFINE_string board "${DEFAULT_BOARD}" \
|
| "The board to set package keywords for."
|
| +DEFINE_boolean host "${FLAGS_FALSE}" \
|
| + "Uses the host instead of board"
|
| DEFINE_string command "git status" \
|
| "The command to be run by forall."
|
|
|
| @@ -32,25 +34,39 @@ commands:
|
| FLAGS "$@" || exit 1
|
| eval set -- "${FLAGS_ARGV}"
|
|
|
| -[ -n "${FLAGS_board}" ] || die "--board is required."
|
| +# board dir config
|
| +[ -n "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_TRUE} ] && \
|
| + die "Flags --host and --board are mutually exclusive."
|
| +[ -z "${FLAGS_board}" ] && [ "${FLAGS_host}" = ${FLAGS_FALSE} ] && \
|
| + die "You must specify either --host or --board="
|
| +
|
| +if [ -n "${FLAGS_board}" ]; then
|
| + BOARD_DIR=/build/"${FLAGS_board}" # --board specified
|
| + EQUERY=equery-"${FLAGS_board}"
|
| +else
|
| + BOARD_DIR="" # --host specified
|
| + EQUERY=equery
|
| +fi
|
| +
|
|
|
| # eat the workon command keywords: start, stop or list.
|
| WORKON_CMD=$1
|
| shift
|
|
|
| -BOARD_DIR=/build/"${FLAGS_board}"
|
|
|
| KEYWORDS_DIR=${BOARD_DIR}/etc/portage/package.keywords
|
| UNMASK_DIR=${BOARD_DIR}/etc/portage/package.unmask
|
| KEYWORDS_FILE=${KEYWORDS_DIR}/cros-workon
|
| UNMASK_FILE=${UNMASK_DIR}/cros-workon
|
|
|
| -sudo mkdir -p "${KEYWORDS_DIR}" "${UNMASK_DIR}" || die "mkdir -p ${KEYWORDS_DIR} ${UNMASK_DIR}"
|
| -sudo touch "${KEYWORDS_FILE}" "${UNMASK_FILE}" || die "touch ${KEYWORDS_FILE} ${UNMASK_FILE}"
|
| +sudo mkdir -p "${KEYWORDS_DIR}" "${UNMASK_DIR}" || \
|
| + die "mkdir -p ${KEYWORDS_DIR} ${UNMASK_DIR}"
|
| +sudo touch "${KEYWORDS_FILE}" "${UNMASK_FILE}" || \
|
| + die "touch ${KEYWORDS_FILE} ${UNMASK_FILE}"
|
|
|
| # Canonicalize package name to category/package.
|
| canonicalize_name () {
|
| - equery-${FLAGS_board} which $1 | \
|
| + ${EQUERY} which $1 | \
|
| awk -F '/' '{ print $(NF-2) "/" $(NF-1) }'
|
| }
|
|
|
| @@ -112,7 +128,7 @@ ebuild_forall() {
|
|
|
| for atom in ${atoms}; do
|
| info "Running \"${FLAGS_command}\" on ${atom}"
|
| - eval $(ebuild-${FLAGS_board} $(equery-${FLAGS_board} which ${atom}) info)
|
| + eval $(ebuild-${FLAGS_board} $(${EQUERY} which ${atom}) info)
|
| (cd "${CROS_WORKON_SRCDIR}" && bash -c "${FLAGS_command}")
|
| done
|
| }
|
|
|