| #!/bin/bash |
| # Copyright 2017 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=Software delivery |
| ### make a zedboot USB key |
| |
| ## usage: fx mkzedboot [options] <usb device> |
| ## -f force writing to a non-usb target |
| |
| set -e |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $? |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/fx-mkzedboot.sh || exit $? |
| |
| fx-config-read |
| |
| force=false |
| if [[ "$1" == "-f" ]]; then |
| shift |
| force=true |
| fi |
| |
| USB_DEVICE="$1" |
| |
| if [[ -z "${USB_DEVICE}" ]]; then |
| echo >&2 "device argument required" |
| echo "USB disks:" |
| fx-command-run list-usb-disks |
| exit 1 |
| fi |
| |
| image="" |
| type="" |
| |
| # Try to get image for efi, if not found, try to get vboot image for chromebook |
| image="$(fx-command-run list-build-artifacts --allow-empty --type blk mkzedboot)" |
| type="efi" |
| if [[ -z "${image}" ]]; then |
| image="$(fx-command-run list-build-artifacts --allow-empty --type zbi.signed mkzedboot)" |
| type="vboot" |
| fi |
| |
| if [[ -z "${image}" ]]; then |
| fx-error "Cannot find image to run mkzedboot. Re-check build board and product." |
| exit 1 |
| fi |
| |
| if [[ ! -f "${FUCHSIA_BUILD_DIR}/${image}" ]]; then |
| fx-warn "Cannot find image to run mkzedboot: $image. Attempting to build it..." |
| fx-command-run build "${image}" |
| fi |
| |
| fx-mkzedboot "${USB_DEVICE}" "${type}" "${FUCHSIA_BUILD_DIR}/${image}" $force |