| Index: lib/cros_workon_common.sh
|
| diff --git a/lib/cros_workon_common.sh b/lib/cros_workon_common.sh
|
| index 45f3c1370311f237f3d2373abbd632e23e998211..129bc0c1d80a69f75cad5c55917c550d43660afd 100644
|
| --- a/lib/cros_workon_common.sh
|
| +++ b/lib/cros_workon_common.sh
|
| @@ -6,16 +6,29 @@
|
|
|
| # Common library for functions used by workon tools.
|
|
|
| -show_workon_ebuilds() {
|
| +find_workon_ebuilds() {
|
| pushd "${BOARD_DIR}"/etc/ 1> /dev/null
|
| source make.conf
|
| popd 1> /dev/null
|
| local CROS_OVERLAYS="${PORTDIR_OVERLAY}"
|
|
|
| + # NOTE: overlay may be a symlink, and we have to use ${overlay}/
|
| for overlay in ${CROS_OVERLAYS}; do
|
| - pushd ${overlay} 1> /dev/null
|
| - find . -name '*.ebuild' | xargs fgrep cros-workon | \
|
| - awk -F / '{ print $2 "/" $3 }' | uniq | sort
|
| - popd 1> /dev/null
|
| + # only look up ebuilds named 9999 to eliminate duplicates
|
| + find ${overlay}/ -name '*9999.ebuild' | xargs fgrep cros-workon | \
|
| + sed -e 's/\([.]ebuild\):.*/\1/'|uniq
|
| done
|
| }
|
| +
|
| +# wrapper script that caches the result of find_workon_ebuilds()
|
| +show_workon_ebuilds_files() {
|
| + if [ -z "${CROS_ALL_EBUILDS}" ]; then
|
| + CROS_ALL_EBUILDS=$(find_workon_ebuilds)
|
| + fi
|
| + echo "${CROS_ALL_EBUILDS}"
|
| +}
|
| +
|
| +show_workon_ebuilds() {
|
| + show_workon_ebuilds_sources | \
|
| + sed -e 's/.*\/\([^/]*\)\/\([^/]*\)\/.*\.ebuild/\1\/\2/'| sort
|
| +}
|
|
|