diff options
author | Khalid Zubair <kzubair@cyngn.com> | 2016-02-11 14:34:12 -0800 |
---|---|---|
committer | Khalid Zubair <kzubair@cyngn.com> | 2016-02-29 16:14:05 -0800 |
commit | 521aa1e2e6d1ef35e0051d4cc76f4b2c91577212 (patch) | |
tree | 48e5cb823fa5218ca2bb475cb9a4ab1872636f81 /envsetup.sh | |
parent | ba297413c51feab9fa43be5af56e12b79891f5fb (diff) | |
download | build-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.tar.gz build-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.tar.bz2 build-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.zip |
envesetup: mmm/mmma: fix for zsh
Fix broken argument handling due to differnt word-splitting behavior
in zsh [1]. Zsh arrays should be explicitly defined.
- [1] http://zsh.sourceforge.net/FAQ/zshfaq03.html
Change-Id: Ic299c1952384001e374c64caebbb23e9792fddf2
Diffstat (limited to 'envsetup.sh')
-rw-r--r-- | envsetup.sh | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/envsetup.sh b/envsetup.sh index eeb6534b3..3384211de 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -902,8 +902,15 @@ function mmm() local ARGS= local DIR TO_CHOP local GET_INSTALL_PATH= - local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') - local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + + if [ "$(__detect_shell)" == "zsh" ]; then + set -lA DASH_ARGS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') + set -lA DIRS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + else + local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') + local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + fi + for DIR in $DIRS ; do MODULES=`echo $DIR | sed -n -e 's/.*:\(.*$\)/\1/p' | sed 's/,/ /'` if [ "$MODULES" = "" ]; then @@ -966,8 +973,13 @@ function mmma() local T=$(gettop) local DRV=$(getdriver $T) if [ "$T" ]; then - local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') - local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + if [ "$(__detect_shell)" == "zsh" ]; then + set -lA DASH_ARGS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') + set -lA DIRS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + else + local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/') + local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/') + fi local MY_PWD=`PWD= /bin/pwd` if [ "$MY_PWD" = "$T" ]; then MY_PWD= |