load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//bazel/go:go_test.bzl", "go_test")

go_library(
    name = "terraform",
    srcs = [
        "loader.go",
        "logging.go",
        "terraform.go",
        "variables.go",
    ],
    importpath = "github.com/edgelesssys/constellation/v2/cli/internal/terraform",
    visibility = ["//:__subpackages__"],
    deps = [
        "//internal/cloud/cloudprovider",
        "//internal/constants",
        "//internal/constellation/state",
        "//internal/file",
        "//terraform",
        "@com_github_hashicorp_go_version//:go-version",
        "@com_github_hashicorp_hc_install//:hc-install",
        "@com_github_hashicorp_hc_install//fs",
        "@com_github_hashicorp_hc_install//product",
        "@com_github_hashicorp_hc_install//releases",
        "@com_github_hashicorp_hc_install//src",
        "@com_github_hashicorp_hcl_v2//:hcl",
        "@com_github_hashicorp_hcl_v2//gohcl",
        "@com_github_hashicorp_hcl_v2//hclsyntax",
        "@com_github_hashicorp_hcl_v2//hclwrite",
        "@com_github_hashicorp_terraform_exec//tfexec",
        "@com_github_hashicorp_terraform_json//:terraform-json",
        "@com_github_spf13_afero//:afero",
    ],
)

go_test(
    name = "terraform_test",
    srcs = [
        "loader_test.go",
        "terraform_test.go",
        "variables_test.go",
    ],
    embed = [":terraform"],
    deps = [
        "//internal/cloud/cloudprovider",
        "//internal/constants",
        "//internal/constellation/state",
        "//internal/file",
        "//internal/role",
        "@com_github_azure_azure_sdk_for_go_sdk_azcore//to",
        "@com_github_hashicorp_terraform_exec//tfexec",
        "@com_github_hashicorp_terraform_json//:terraform-json",
        "@com_github_spf13_afero//:afero",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//require",
        "@org_uber_go_goleak//:goleak",
    ],
)
