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