blob: 12dc17f70503d1d5822348891a527c9164ef760e [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.
### 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