Index: sdk/bin/pub |
diff --git a/sdk/bin/pub b/sdk/bin/pub |
index 231da3ebc4cbc2580e647e355e622608a6fa7ab5..b8c761e79941b5cc759567fe70ba3dbf9aaad61f 100755 |
--- a/sdk/bin/pub |
+++ b/sdk/bin/pub |
@@ -7,9 +7,10 @@ |
# 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)" |
+# dart-sdk/bin or the script itself has been symlinked to. On MacOS, readlink -f |
+# doesn't work with this case. |
+SCRIPT=`readlink "$0" || echo "$0"` |
+BIN_DIR="$(cd "${SCRIPT%/*}" ; pwd -P)" |
SDK_DIR="$(cd "${BIN_DIR}/.." ; pwd -P)" |
SNAPSHOT="$BIN_DIR/snapshots/pub.dart.snapshot" |
@@ -40,4 +41,4 @@ else |
PUB="$SDK_DIR/lib/_internal/pub/bin/pub.dart" |
exec "$DART" "--package-root=$PACKAGES_DIR" "$PUB" "$@" |
-fi |
+fi |