#!/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}" "$@"