Chromium Code Reviews| Index: sdk/bin/pub_developer |
| diff --git a/sdk/bin/pub_developer b/sdk/bin/pub_developer |
| index be0510d990fbc78797d73fe57c7d153a5591215b..c595fc88a502f6b50aa71523a3773c076205f254 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. |
|
ahe
2013/11/14 15:36:05
Weird line endings.
|
| +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 |