| #!/bin/bash |
| # Copyright 2018 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| #### CATEGORY=Run, inspect and debug |
| ### attach to a running flutter module to enable hot reload and debugging |
| |
| ## usage: fx flutter-attach //topaz/examples/hello_world:hello_world |
| ## |
| ## This command requires Topaz in order to run. |
| ## |
| ## Arguments: |
| ## -v|--verbose Enable verbose logging. |
| ## -h|--help Print out this message. |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/../lib/vars.sh || exit $? |
| fx-config-read |
| |
| ARGS=() |
| |
| NAME="$(get-device-name)" |
| if [[ -n "$name" ]]; then |
| ARGS+=("--device", "${name}") |
| fi |
| |
| for var in "$@" |
| do |
| case "$var" in |
| -h|--help) |
| fx-command-help |
| exit 0 |
| ;; |
| -v|--verbose) |
| ARGS+=("--verbose") |
| ;; |
| *) |
| TARGET="$var" |
| ;; |
| esac |
| done |
| |
| PREBUILT_DART="${PREBUILT_DART_DIR}/bin/dart" |
| if [[ ! -x "$PREBUILT_DART" ]]; then |
| fx-error "No prebuilt dart found in ${PREBUILT_DART_DIR}." |
| exit 1 |
| fi |
| |
| DEV_FINDER="${FUCHSIA_BUILD_DIR}/host-tools/device-finder" |
| if [[ ! -x "$DEV_FINDER" ]]; then |
| fx-error "Cannot find Fuchsia device finder in ${DEV_FINDER}." |
| fx-error "Run 'fx build' to build host tools." |
| exit 1 |
| fi |
| |
| FUCHSIA_ATTACH_BIN="${FUCHSIA_BUILD_DIR}/host_x64/dart-tools/fuchsia_attach" |
| if [[ ! -x "$FUCHSIA_ATTACH_BIN" ]]; then |
| fx-error "No fuchsia_attach tool in ${FUCHSIA_ATTACH_BIN}." |
| fx-error "Make sure it is in your 'fx set' config and run 'fx build' to build it." |
| exit 1 |
| fi |
| |
| # The flutter tool expects the working directory is the fuchsia root. |
| cd "${FUCHSIA_DIR}" |
| |
| "${FUCHSIA_ATTACH_BIN}" \ |
| "--dart-sdk=${PREBUILT_DART}" \ |
| "--build-dir=${FUCHSIA_BUILD_DIR}"\ |
| "--target=${TARGET}" \ |
| "--dev-finder=${DEV_FINDER}" \ |
| "${ARGS[@]}" |