#!/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.

#### CATEGORY=Device management
### start a remote interactive shell in the target device

## usage: fx shell [-h|--help] [<command>]
##
## Creates an SSH connection with a device and executes a command.
##
## Arguments:
##   -h|--help    Print out this message.

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?

case $1 in
  -h|--help)
  fx-command-help
  exit 0
  ;;
esac

if [[ ! -f "${FUCHSIA_DIR}/.ssh/pkey" ]]; then
  fx-warn "Generated SSH key is missing, connections may fail"
  fx-warn "Remove ${FUCHSIA_DIR}/.ssh/authorized_keys and run jiri run-hooks to regenerate"
fi

device_addr="$(get-fuchsia-device-addr)"
if [[ -z "${device_addr}" ]]; then
  # Error output is provided to stderr by get-fuchsia-device-addr
  exit 1
fi
# Note: I know there are people who don't like the host-key message, but DO NOT
# apply -q here, it silences error messages and makes network and configuration
# failures much harder to diagnose when helping people. The control master will
# mean you only get one per TCP socket, which is once per newly booted host.
# It's not a huge burden compared to end user support.
fx-command-exec ssh "${device_addr}" "$@"
