diff --git a/bin/cros_workon_make b/bin/cros_workon_make index da2a3ebca5..1556149b82 100755 --- a/bin/cros_workon_make +++ b/bin/cros_workon_make @@ -10,7 +10,7 @@ . "$(dirname $0)/../common.sh" # Script must be run inside the chroot. -assert_inside_chroot +restart_in_chroot_if_needed "$@" get_default_board diff --git a/common.sh b/common.sh index 20a473cff8..a11f257289 100644 --- a/common.sh +++ b/common.sh @@ -106,7 +106,7 @@ DEFAULT_BUILD_ROOT=${CHROMEOS_BUILD_ROOT:-"$SRC_ROOT/build"} # Set up a global ALL_BOARDS value if [ -d $SRC_ROOT/overlays ]; then ALL_BOARDS=$(cd $SRC_ROOT/overlays;ls -1d overlay-* 2>&-|sed 's,overlay-,,g') -fi +fi # Strip CR ALL_BOARDS=$(echo $ALL_BOARDS) # Set a default BOARD @@ -231,11 +231,15 @@ function make_pkg_common { # Enter a chroot and restart the current script if needed function restart_in_chroot_if_needed { + # NB: Pass in ARGV: restart_in_chroot_if_needed "$@" if [ $INSIDE_CHROOT -ne 1 ] then - # Equivalent to enter_chroot.sh -- + local abspath=$(readlink -f "$0") + # strip everything up to (and including) /src/scripts/ from abspath + local path_from_scripts="${abspath##*/src/scripts/}" exec $SCRIPTS_DIR/enter_chroot.sh -- \ - $CHROOT_TRUNK_DIR/src/scripts/$(basename $0) $* + "$CHROOT_TRUNK_DIR/src/scripts/$path_from_scripts" "$@" + exit fi }