#!/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
### copy a file to/from a target device

## usage: fx cp [--to-target|--to-host] SRC... DST
##
## Copies a file from the host to the target device, or vice versa.
##
## --to-target: copy file SRC from host to DST on the target
## --to-host: copy file SRC from target to DST on the host
##
## The default is to copy files to the target.


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

set -e

to_target=true
if [[ $# -gt 2 ]]; then
  case "$1" in
  --to-target)
    to_target=true
    shift
    ;;
  --to-host)
    to_target=false
    shift
    ;;
  --help)
    fx-command-help
    exit 1
  esac
fi

if [[ $# -lt 2 ]]; then
  fx-command-help
  exit 1
fi

args=( "$@" )
nargs=${#args[@]}
dst=${args[$nargs-1]}
srcs=( "${args[@]:0:$nargs-1}" )
host="$(get-fuchsia-device-addr)"

sftp_args=()

port="$(get-device-ssh-port)"
if [[ -n "${port}" ]]; then
  sftp_args+=( "-P" "${port}" )
fi

sftp_args+=(
  "-q"
  "-b" "-"
  "[${host}]"
)

if [[ "${to_target}" = "true" ]]; then
  (
  for src in "${srcs[@]}"; do
    echo "put \"${src}\" \"${dst}\""
  done
  ) | fx-command-run sftp "${sftp_args[@]}" > /dev/null
else
  (
  for src in "${srcs[@]}"; do
    echo "get \"${src}\" \"${dst}\""
  done
  ) | fx-command-run sftp "${sftp_args[@]}" > /dev/null
fi
