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

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

# Find directories.
PKG_BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
DART_ROOT="$(cd "${PKG_BIN_DIR}/../../.." ; pwd -P)"
SDK_DIR="${DART_ROOT}/sdk"
BIN_DIR="${SDK_DIR}/bin"

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

DART="$BIN_DIR/dart"

unset EXTRA_VM_OPTIONS
declare -a EXTRA_VM_OPTIONS

# We allow extra vm options to be passed in through an environment variable.
if [[ $DART_VM_OPTIONS ]]; then
  read -a OPTIONS <<< "$DART_VM_OPTIONS"
  EXTRA_VM_OPTIONS+=("${OPTIONS[@]}")
fi

COMPARE_PROGRAMS="$PKG_BIN_DIR/compare_programs.dart"

exec "$DART" "--packages=$DART_ROOT/.packages" "${EXTRA_VM_OPTIONS[@]}" "$COMPARE_PROGRAMS" "$SDK_ARG" "$@"
