| # 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"], |
| 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"], |
| ) |