#!/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
