#!/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.

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)"

unset COLORS
if test -t 1; then
  # Stdout is a terminal.
  if test 8 -le `tput colors`; then
    # Stdout has at least 8 colors, so enable colors.
    COLORS="--enable-diagnostic-colors"
  fi
fi

unset SNAPSHOT

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

if test -f $SNAPSHOT; then
  # TODO(ahe): Remove the following line when we are relatively sure it works.
  echo Using snapshot $SNAPSHOT 1>&2
  exec "$BIN_DIR"/dart --heap_growth_rate=32 \
      "--package-root=$BIN_DIR/../packages/" $SNAPSHOT dartdoc $COLORS \
      "--package-root=$BIN_DIR/../packages/" "--library-root=$BIN_DIR/.." "$@"
else
  exec "$BIN_DIR"/dart --heap_growth_rate=32 \
      "--package-root=$BIN_DIR/../packages/" \
      "$BIN_DIR/../lib/_internal/dartdoc/bin/dartdoc.dart" $COLORS "$@"
fi
