# Copyright 2019 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.

import("//build/go/go_library.gni")
import("//build/go/go_test.gni")

go_library("sshutil") {
  sources = [
    "client.go",
    "client_test.go",
    "conn.go",
    "conn_test.go",
    "sshutil.go",
    "sshutil_test.go",
    "testserver.go",
    "testserver_test.go",
  ]
  deps = [
    ":constants",
    "//third_party/golibs:github.com/pkg/sftp",
    "//third_party/golibs:golang.org/x/crypto",
    "//tools/lib/logger",
    "//tools/lib/retry",
  ]
}

go_library("constants") {
  source_dir = "constants"
  sources = [ "constants.go" ]
}

go_test("sshutil_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/net/sshutil" ]
  deps = [ ":sshutil" ]
}
