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