| #!/bin/bash |
| # Copyright (c) 2017, 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. |
| |
| # TODO(ahe): This should be replaced by a Dart script that works on Windows, |
| # Linux, and Mac. |
| |
| set -e |
| |
| REPO_DIR="$(cd ${BASH_SOURCE%/*} && git rev-parse --show-toplevel)" |
| |
| DART_VM=${DART_VM-"${REPO_DIR}/sdk/bin/dart"} |
| |
| TOOL_DIR="${REPO_DIR}/pkg/front_end/tool/_fasta" |
| |
| KERNEL_BIN="${REPO_DIR}/pkg/kernel/bin" |
| |
| function stop { |
| echo "$@" >&2 |
| exit 2 |
| } |
| |
| export DART_CONFIGURATION=${DART_CONFIGURATION:-ReleaseX64} |
| |
| EXTRA_VM_ARGS=() |
| |
| while [[ "$1" == -* ]]; do |
| EXTRA_VM_ARGS+=("$1") |
| shift |
| done |
| |
| case "${1//_/-}" in |
| abcompile) SCRIPT="${TOOL_DIR}/abcompile.dart";; |
| compile) SCRIPT="${TOOL_DIR}/compile.dart";; |
| compile-platform) SCRIPT="${TOOL_DIR}/compile_platform.dart";; |
| log) SCRIPT="${TOOL_DIR}/log_analyzer.dart";; |
| logd) SCRIPT="${TOOL_DIR}/log_collector.dart";; |
| outline) SCRIPT="${TOOL_DIR}/outline.dart";; |
| parser) SCRIPT="${TOOL_DIR}/parser.dart";; |
| scanner) SCRIPT="${TOOL_DIR}/scanner.dart";; |
| dump-ir) |
| SCRIPT="${KERNEL_BIN}/dump.dart" |
| if [ "$#" = "2" ]; then |
| # Write to stdout if no target is given. |
| set -- "$@" /dev/fd/1 |
| fi |
| if [ "$#" != "3" ]; then |
| stop "Usage: $1 dillfile [output]" |
| fi |
| ;; |
| testing) |
| SCRIPT="${REPO_DIR}/pkg/testing/bin/testing.dart" |
| set -- "$@" "--config=${REPO_DIR}/pkg/front_end/testing.json" |
| ;; |
| generate-messages) SCRIPT="${TOOL_DIR}/generate_messages.dart";; |
| generate-experimental-flags) SCRIPT="${TOOL_DIR}/generate_experimental_flags.dart";; |
| *) |
| stop "'$1' isn't a valid subcommand." |
| ;; |
| esac |
| |
| shift |
| |
| exec "${DART_VM}" "${EXTRA_VM_ARGS[@]}" --enable-asserts "${SCRIPT}" "$@" |