| #!/bin/bash --posix |
| # 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. |
| |
| set -e |
| |
| # Setting SCRIPT_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. |
| SCRIPT_DIR="$(cd "${0%/*}" ; pwd -P)" |
| DART_ANALYZER_HOME="$(cd "${SCRIPT_DIR%/*}" ; pwd -P)" |
| |
| FOUND_BATCH=0 |
| FOUND_SDK=0 |
| for ARG in "$@" |
| do |
| case $ARG in |
| -batch|--batch) |
| FOUND_BATCH=1 |
| ;; |
| --dart-sdk) |
| FOUND_SDK=1 |
| ;; |
| *) |
| ;; |
| esac |
| done |
| |
| DART_SDK="" |
| if [ $FOUND_SDK = 0 ] ; then |
| if [ -f $DART_ANALYZER_HOME/lib/core/core.dart ] ; then |
| DART_SDK="--dart-sdk $DART_ANALYZER_HOME" |
| else |
| DART_SDK_HOME=$(dirname $DART_ANALYZER_HOME)/dart-sdk |
| if [ -d $DART_SDK_HOME ] ; then |
| DART_SDK="--dart-sdk $DART_SDK_HOME" |
| else |
| DART_SDK_HOME=$(dirname $DART_SDK_HOME)/dart-sdk |
| if [ -d $DART_SDK_HOME ] ; then |
| DART_SDK="--dart-sdk $DART_SDK_HOME" |
| else |
| echo "Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument" |
| fi |
| fi |
| fi |
| fi |
| |
| if [ -f $DART_SDK_HOME/util/analyzer/dart_analyzer.jar ] ; then |
| DART_ANALYZER_LIBS=$DART_SDK_HOME/util/analyzer |
| elif [ -f $DART_ANALYZER_HOME/util/analyzer/dart_analyzer.jar ] ; then |
| DART_ANALYZER_LIBS=$DART_ANALYZER_HOME/util/analyzer |
| else |
| echo "Configuration problem. Couldn't find dart_analyzer.jar." |
| exit 1 |
| fi |
| |
| if [ -x /usr/libexec/java_home ]; then |
| export JAVA_HOME=$(/usr/libexec/java_home -v '1.6+') |
| fi |
| |
| EXTRA_JVMARGS="-Xss2M " |
| OS=`uname | tr "[A-Z]" "[a-z]"` |
| if [ "$OS" == "darwin" ] ; then |
| # Bump up the heap on Mac VMs, some of which default to 128M or less. |
| # Users can specify DART_JVMARGS in the environment to override this |
| # setting. |
| EXTRA_JVMARGS+=" -Xmx256M -client " |
| else |
| # On other architectures |
| # -batch invocations will do better with a server vm |
| # invocations for analyzing a single file do better with a client vm |
| if [ $FOUND_BATCH = 0 ] ; then |
| EXTRA_JVMARGS+=" -client " |
| fi |
| fi |
| |
| exec java $EXTRA_JVMARGS $DART_JVMARGS -ea -classpath "@CLASSPATH@" \ |
| com.google.dart.compiler.DartCompiler ${DART_SDK} $@ |