blob: 0cefe6af6fe935ea8aa12d4d2ddf31818dff9aa2 [file] [log] [blame]
#!/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.
## 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