#!/bin/bash
# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# 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)"
SDK_DIR="$(cd "${BIN_DIR}/.." ; pwd -P)"

SNAPSHOT="$BIN_DIR/snapshots/pub.dart.snapshot"

if test -f "$SNAPSHOT"; then
  # We are running the snapshot in the built SDK.
  DART="$BIN_DIR/dart"
  exec "$DART" "--checked" "$SNAPSHOT" "$@"
else
  # We are running pub from source in the development repo.
  if [ -z "$DART_CONFIGURATION" ];
  then
    DART_CONFIGURATION="ReleaseIA32"
  fi

  if [[ `uname` == 'Darwin' ]];
  then
    BUILD_DIR="$SDK_DIR/../xcodebuild/$DART_CONFIGURATION"
  else
    BUILD_DIR="$SDK_DIR/../out/$DART_CONFIGURATION"
  fi

  # Use the Dart binary in the built SDK so pub can find the version file next
  # to it.
  DART="$BUILD_DIR/dart-sdk/bin/dart"
  PACKAGES_DIR="$BUILD_DIR/packages/"

  PUB="$SDK_DIR/lib/_internal/pub/bin/pub.dart"

  exec "$DART" "--checked" "--package-root=$PACKAGES_DIR" "$PUB" "$@"
fi