# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data")

# Our goal is for this program to be embedded into this Go package. Go embed
# only allows files in the same package directory to be embedded. So we need to
# use a "no-op" genrule to place this binary in the same directory as the
# package source.
genrule(
    name = "handle_disk_layout.bin",
    srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64"],
    outs = ["_handle_disk_layout.bin"],
    cmd = "cp $< $@",
)

genrule(
    name = "veritysetup.img",
    srcs = ["//:veritysetup.tar"],
    outs = ["_veritysetup.img"],
    cmd = "cp $< $@",
)

genrule(
    name = "docker_credential_gcr",
    srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr"],
    outs = ["docker-credential-gcr"],
    cmd = "cp $< $@",
)

go_library(
    name = "provisioner_lib",
    srcs = [
        "main.go",
        "resume.go",
        "run.go",
    ],
    embedsrcs = [
        ":handle_disk_layout.bin",
        ":veritysetup.img",
        ":docker_credential_gcr",
    ],
    importpath = "cos.googlesource.com/cos/tools.git/src/cmd/provisioner",
    visibility = ["//visibility:private"],
    deps = [
        "//src/pkg/provisioner",
        "@com_github_google_subcommands//:subcommands",
        "@com_google_cloud_go_storage//:storage",
    ],
)

go_binary(
    name = "provisioner",
    embed = [":provisioner_lib"],
    visibility = ["//visibility:public"],
)
