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

### build Fuchsia and push to device

## usage: fx build-push [ninja option,...] [target,...]
##
## Build ALL targets. After building all the targets, push the ones that were
## supplied to this command. If no targets were specified push all of them.
## The packages are pushed to the device specified. If no device is supplied
## explictly this will push to the single connected device. If multiple devices
## are connected and no device is specified, pushing will fail.

set -e

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read

function main {
  local args=()
  local targets=()
  while (($#)); do
    case "$1" in
      -C|-f|-j|-k|-l|-t|-w)
        args+=("$1")
        shift
        args+=("$1")
        ;;
      -n|-v)
        args+=("$1")
        ;;
      *)
        targets+=("$1")
    esac
    shift
  done

  fx-command-run build "${args[@]}"

  if [[ -z "$(pgrep -f "amber-files/repository")" ]]; then
    echo
    echo "WARNING: It looks like serve-updates is not running."
    echo "WARNING: You probably need to start \"fx serve\""
    echo
  fi

  fx-command-run push-package "${targets[@]}"
}

main "$@"
