cros_workon: allow multiple projects

Backwards compatible change, because regular variables are addressable
as arrays of up to one item.

BUG=chromium-os:25338
TEST=cros_workon --host start sys-libs/glibc (with local multi-project
mod), and observe that both projects are correctly added to
local_manifest, then repo sync.
TEST=cros_workon start number of single-project ebuilds

Change-Id: Ib3c7ebec7860f23d9331cecd55e3fc9a70709c93
Reviewed-on: https://gerrit.chromium.org/gerrit/23913
Commit-Ready: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Tested-by: Zdenek Behan <zbehan@chromium.org>
This commit is contained in:
Zdenek Behan 2012-04-06 17:53:39 +02:00 committed by David James
parent a00ab37b7a
commit 6830f055a5

View File

@ -263,12 +263,17 @@ regen_manifest_and_sync() {
fi
eval "${pkginfo}"
local srcdir=$(readlink -m ${CROS_WORKON_SRCDIR})
local trunkdir=$(readlink -m ${CHROOT_TRUNK_DIR})
local project_path=${srcdir#${trunkdir}/}
local trunkdir=$(readlink -m "${CHROOT_TRUNK_DIR}")
loman add --workon "${CROS_WORKON_PROJECT}" "${project_path}"
local i=0
need_repo_sync='yes'
for S in "${CROS_WORKON_SRCDIR[@]}"; do
local srcdir=$(readlink -m "${S}")
local project_path=${srcdir#${trunkdir}/}
loman add --workon "${CROS_WORKON_PROJECT[i]}" "${project_path}"
: $(( ++i ))
done
done
if [ -n "${need_repo_sync}" ]; then
echo "Please run \"repo sync\" now."
@ -347,7 +352,9 @@ ebuild_iterate() {
for atom in ${atoms}; do
info "Running \"${FLAGS_command}\" on ${atom}"
eval $(${EBUILDCMD} $(${EQUERYCMD} which ${atom}) info)
(cd "${CROS_WORKON_SRCDIR}" && bash -c "${FLAGS_command}")
for S in "${CROS_WORKON_SRCDIR[@]}"; do
(cd "${S}" && bash -c "${FLAGS_command}")
done
done
}