| Index: sdk/bin/pub_developer
|
| diff --git a/sdk/bin/pub_developer b/sdk/bin/pub_developer
|
| index be0510d990fbc78797d73fe57c7d153a5591215b..287bb7db508cf6d66af67c7eb73430d77bd6453e 100755
|
| --- a/sdk/bin/pub_developer
|
| +++ b/sdk/bin/pub_developer
|
| @@ -6,10 +6,21 @@
|
| # Run pub.dart on the Dart VM. This script assumes the Dart SDK's directory
|
| # structure.
|
|
|
| -# Setting BIN_DIR this way is ugly, but is needed to handle the case where
|
| -# dart-sdk/bin has been symlinked to. On MacOS, readlink doesn't work
|
| -# with this case.
|
| -BIN_DIR="$(cd "${0%/*}" ; pwd -P)"
|
| +function follow_links() {
|
| + file="$1"
|
| + while [ -h "$file" ]; do
|
| + # On Mac OS, readlink -f doesn't work.
|
| + file="$(readlink "$file")"
|
| + done
|
| + echo "$file"
|
| +}
|
| +
|
| +# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
|
| +PROG_NAME="$(follow_links "$BASH_SOURCE")"
|
| +
|
| +# Handle the case where dart-sdk/bin has been symlinked to.
|
| +BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
| +
|
| SDK_DIR="$(cd "${BIN_DIR}/.." ; pwd -P)"
|
|
|
| SNAPSHOT="$BIN_DIR/snapshots/pub.dart.snapshot"
|
| @@ -40,4 +51,4 @@ else
|
| PUB="$SDK_DIR/lib/_internal/pub/bin/pub.dart"
|
|
|
| exec "$DART" "--checked" "--package-root=$PACKAGES_DIR" "$PUB" "$@"
|
| -fi
|
| +fi
|
|
|