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