| #!/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 "$@" |