blob: 21ea897e156892f7d23d348d79902b50172c1481 [file] [log] [blame]
# 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"],
)