| 1 | #! /bin/sh -e |
| 2 | |
| 3 | case $# in |
| 4 | 0) echo 2>&1 "usage: ${0##*/} ENV [CMD [ARGS ...]]"; exit 2 ;; |
| 5 | esac |
| 6 | env=$1; shift |
| 7 | case $# in |
| 8 | 0) set -- "$SHELL" ;; |
| 9 | esac |
| 10 | |
| 11 | case ${CROSSDIR+t} in |
| 12 | t) ;; |
| 13 | *) |
| 14 | dir=$(pwd) |
| 15 | p=$0 |
| 16 | while :; do |
| 17 | case $p in */*) f=${p##*/} p=${p%/*};; *) f=$p p=. ;; esac |
| 18 | cd $p |
| 19 | if ! [ -L "$f" ]; then break; fi |
| 20 | p=$(readlink "$f") |
| 21 | done |
| 22 | p=$(pwd) |
| 23 | CROSSDIR=${p%/bin}; export CROSSDIR |
| 24 | cd "$dir" |
| 25 | ;; |
| 26 | esac |
| 27 | |
| 28 | if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then |
| 29 | echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2 |
| 30 | fi |
| 31 | |
| 32 | MDW_BUILDENV=$env; export MDW_BUILDENV |
| 33 | if [ -f "$CROSSDIR/etc/$env-config.site" ]; then |
| 34 | CONFIG_SITE=$CROSSDIR/etc/$env-config.site; export CONFIG_SITE |
| 35 | fi |
| 36 | CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX |
| 37 | . "$CROSSDIR/etc/$env-setup.sh" |
| 38 | exec "$@" |