# Copyright 2020 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("syslog") {
  sources = [
    "syslog.go",
    "syslog_test.go",
  ]
  deps = [
    ":constants",
    "//tools/lib/logger",
    "//tools/lib/retry",
    "//tools/net/sshutil",
  ]
}

go_test("syslog_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/lib/syslog" ]
  deps = [ ":syslog" ]
}

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