| #!/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=Device management | |
| ### flash and, optionally, pave a connected device | |
| ## usage: fx flash [-s <serial>] [--pave] | |
| ## -s Device you wish to flash to (only necessary if multiple | |
| ## devices in fastboot mode) | |
| ## --pave Pave device after flashing (recommended) | |
| set -e | |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/image_build_vars.sh || exit $? | |
| usage() { | |
| fx-command-help | |
| echo "Available devices:" | |
| fastboot devices -l | |
| exit 1 | |
| } | |
| pave=false | |
| partition=$ZIRCONA | |
| device= | |
| while [[ $# -ge 1 ]]; do | |
| case "$1" in | |
| -h|--help) | |
| usage | |
| ;; | |
| --pave) | |
| pave=true | |
| ;; | |
| --nopave) | |
| pave=false | |
| ;; | |
| -s) | |
| shift | |
| device="$1" | |
| ;; | |
| *) | |
| break | |
| esac | |
| shift | |
| done | |
| num_devices=$(fastboot devices | wc -l) | |
| if [[ "${num_devices}" -lt 1 ]]; then | |
| echo "Please place device into fastboot mode!" | |
| exit 1 | |
| elif [[ "${num_devices}" -gt 1 ]] && [[ -z "${device}" ]]; then | |
| echo "More than one device detected, please provide -s <device>!" | |
| usage | |
| exit 1 | |
| fi | |
| fastboot_args=() | |
| if [[ ! -z "${device}" ]]; then | |
| if [[ ! "$(fastboot devices -l)" =~ "${device}" ]]; then | |
| echo "Device ${device} not found!" | |
| usage | |
| exit 1 | |
| fi | |
| fastboot_args=("-s" "${device}") | |
| fi | |
| "${FUCHSIA_BUILD_DIR}/flash.sh" "${fastboot_args[@]}" | |
| if [[ "${pave}" == "true" ]]; then | |
| fx-command-exec pave -1 | |
| fi |