| #!/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. | |
| ### push packages to a device | |
| ## usage: fx push-package [-d|--device <device_address>] [pkg1 pkg2 ...] | |
| ## | |
| ## Push packages to a device. One or more package names may be supplied. If no | |
| ## package name is suppled all packages in the build output will be pushed. The | |
| ## target must be reachable from the host and most already know the host's IP | |
| ## address. | |
| ## | |
| ## See https://fuchsia.googlesource.com/docs/+/master/development/workflows/package_update.md | |
| ## for more information about using this workflow. | |
| ## | |
| ## optional arguments (must be first): | |
| ## -d|--device IP address of the target | |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh | |
| fx-config-read | |
| function usage { | |
| fx-command-help push-package | |
| } | |
| function main { | |
| fx-standard-switches "$@" | |
| set -- "${FX_ARGV[@]}" | |
| local device="" | |
| local device_args=() | |
| device="$(get-device-addr $@)" | |
| if [[ -n "$device" ]]; then | |
| shift | |
| device_args=("-d" "$1") | |
| shift | |
| fi | |
| # if the second arg is set, but 0-length, publish nothing | |
| if [[ $# -eq 1 ]] && [[ -z "${1}" ]]; then | |
| exit 0 | |
| fi | |
| fx-command-run publish "$@" | |
| fx-command-run push-package-no-publish "${device_args[@]}" "$@" | |
| } | |
| main "$@" |