cros_workon: switch to cros_list_overlays
Newer portage warns when you try to query PORTDIR_OVERLAY, so switch to
our own cros_list_overlays to get the same information.
BUG=chromium:398269
TEST=`cros_workon-link --all list` output is unchanged
TEST=`cros_workon-link --all list --board link` output is unchanged
CQ-DEPEND=CL:226735
Change-Id: I23fbcf1033ddc11be9d8c9aad9fd29f654057ef5
Reviewed-on: https://chromium-review.googlesource.com/226736
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
diff --git a/cros_workon b/cros_workon
index 40bd3d7..280552d 100755
--- a/cros_workon
+++ b/cros_workon
@@ -114,7 +114,7 @@
local overlay
# NOTE: overlay may be a symlink, and we have to use ${overlay}/
- for overlay in ${PORTDIR_OVERLAY}; do
+ for overlay in "${OVERLAYS[@]}"; do
# only look up ebuilds named 9999 to eliminate duplicates
find "${overlay}"/*-* -maxdepth 2 -type f -name '*9999.ebuild' \
-exec grep -l 'inherit.*cros-workon' {} + 2>/dev/null | \
@@ -372,9 +372,12 @@
# Only call portageq when absolutely required, and when we do, only run it
# once -- it's a slow beast and can easily take hundreds of milliseconds :(.
if [[ ${WORKON_CMD} != "list" || ${FLAGS_all} != ${FLAGS_FALSE} ]] ; then
- portageq_vars="ARCH PORTDIR_OVERLAY"
- unset ${portageq_vars}
- eval $(${PORTAGEQCMD} envvar -v ${portageq_vars})
+ ARCH=$(${PORTAGEQCMD} envvar ARCH)
+ cmd=( cros_list_overlays --all )
+ if [[ -n ${FLAGS_board} ]]; then
+ cmd+=( --board "${FLAGS_board}" )
+ fi
+ OVERLAYS=( $("${cmd[@]}") )
fi
# --all makes commands operate on different lists