blob: a632c75243857c2bf6e3d995c7ed5a4e3ac780f9 [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.
#### CATEGORY=Software delivery
### 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
## explicitly 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 $?
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/updates.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[@]}"
check-for-amber-server || return 1
fx-command-run push-package "${targets[@]}"
}
main "$@"