#!/usr/bin/env bash
# Copyright (c) 2013, 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 dartanalyzer.dart on the Dart VM. This script assumes the Dart SDK's
# directory structure.

echo "Warning: 'dartanalyzer' is deprecated. Please use 'dart analyze'." 1>&2

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

SDK_ARG="--dart-sdk=$SDK_DIR"

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

# We are running the snapshot in the built SDK.
DART="$BIN_DIR/dart"
exec "$DART" --enable_experiment=non-nullable "$SNAPSHOT" "$SDK_ARG" "$@"
