| # 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_amd64.bin", |
| srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_amd64"], |
| outs = ["_handle_disk_layout_amd64.bin"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "handle_disk_layout_arm64.bin", |
| srcs = ["//src/cmd/handle_disk_layout:handle_disk_layout_bin_arm64"], |
| outs = ["_handle_disk_layout_arm64.bin"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "veritysetup_amd64.img", |
| srcs = ["//:veritysetup_amd64.tar"], |
| outs = ["_veritysetup_amd64.img"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "veritysetup_arm64.img", |
| srcs = ["//:veritysetup_arm64.tar"], |
| outs = ["_veritysetup_arm64.img"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "docker_credential_gcr_amd64", |
| srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_amd64"], |
| outs = ["docker-credential-gcr_amd64"], |
| cmd = "cp $< $@", |
| ) |
| |
| genrule( |
| name = "docker_credential_gcr_arm64", |
| srcs = ["@com_github_googlecloudplatform_docker_credential_gcr//:docker-credential-gcr_arm64"], |
| outs = ["docker-credential-gcr_arm64"], |
| cmd = "cp $< $@", |
| ) |
| |
| go_library( |
| name = "provisioner_lib", |
| srcs = [ |
| "main.go", |
| "resume.go", |
| "run.go", |
| "embeds_linux_amd64.go", |
| "embeds_linux_arm64.go", |
| ], |
| embedsrcs = select({ |
| "@io_bazel_rules_go//go/toolchain:amd64": [ |
| ":handle_disk_layout_amd64.bin", |
| ":veritysetup_amd64.img", |
| ":docker_credential_gcr_amd64", |
| ], |
| "@io_bazel_rules_go//go/toolchain:arm64": [ |
| ":handle_disk_layout_arm64.bin", |
| ":veritysetup_arm64.img", |
| ":docker_credential_gcr_arm64", |
| ], |
| }), |
| 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_amd64", |
| embed = [":provisioner_lib"], |
| goos = "linux", |
| goarch = "amd64", |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_binary( |
| name = "provisioner_arm64", |
| embed = [":provisioner_lib"], |
| goos = "linux", |
| goarch = "arm64", |
| visibility = ["//visibility:public"], |
| ) |