| #!/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. |
| |
| ### Listen for logs |
| |
| ## usage: fx syslog [-d|--device <device>] [log-listener flags] |
| ## |
| ## Creates an SSH connection with a device and starts listening for logs. |
| ## Pass -h to get help with log-listener flags. |
| ## |
| ## Arguments: |
| ## -d|--device Fuchsia link-local name of the device. If not |
| ## specified, will connect to the only available |
| ## device on the link-local network. |
| |
| source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh |
| |
| function listen { |
| trap "exit 0" INT |
| while true; do |
| addr=$(fx-command-run netaddr --fuchsia "${device}") |
| if [[ $? -eq 0 ]]; then |
| echo "Connecting to device..." |
| (fx-command-exec ssh "${addr}" /system/bin/log_listener "$@" || true) |
| echo "Connection lost, looking for device" |
| fi |
| sleep 1 |
| done |
| } |
| |
| case $1 in |
| -d|--device) |
| shift # name |
| if [[ -z "$1" ]]; then |
| echo "Missing parameter: <device>" >&2 |
| fx-command-help |
| exit 1 |
| fi |
| device="$1" |
| shift # value |
| ;; |
| esac |
| |
| echo "Looking for device" |
| listen |