blob: b3af473127c0940050e0b29d19b88e632535a4bd [file] [log] [blame]
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
3load("//osbase/build:def.bzl", "node_initramfs")
4load("//osbase/build:def.bzl", "platform_transition_binary")
5
6node_initramfs(
7 name = "initramfs",
8 files = {},
9 fsspecs = [
10 "//osbase/build:earlydev.fsspec",
11 "//third_party:firmware",
12 ],
13 visibility = ["//metropolis/cli/takeover:__subpackages__"],
14)
15
16go_library(
17 name = "takeover_lib",
18 srcs = [
19 "boot.go",
20 "install.go",
21 "main.go",
22 "takeover.go",
23 ],
24 embedsrcs = [
25 "//third_party/linux", #keep
26 "//third_party:ucode", #keep
27 ":initramfs", #keep
28 "//metropolis/node/core/abloader", #keep
29 ],
30 importpath = "source.monogon.dev/metropolis/cli/takeover",
31 visibility = ["//visibility:private"],
32 deps = [
33 "//go/logging",
34 "//metropolis/node/core/devmgr",
35 "//metropolis/proto/api",
36 "//osbase/blockdev",
37 "//osbase/bootparam",
38 "//osbase/bringup",
39 "//osbase/build/mkimage/osimage",
40 "//osbase/efivarfs",
41 "//osbase/kexec",
42 "//osbase/net/dump",
43 "//osbase/net/proto",
44 "//osbase/supervisor",
45 "@com_github_cavaliergopher_cpio//:cpio",
46 "@com_github_klauspost_compress//zstd",
47 "@org_golang_google_protobuf//proto",
48 "@org_golang_x_sys//unix",
49 ],
50)
51
52go_binary(
53 name = "takeover_bin",
54 embed = [":takeover_lib"],
55 pure = "on",
56 visibility = ["//visibility:public"],
57)
58
59platform_transition_binary(
60 name = "takeover",
61 binary = ":takeover_bin",
62 target_platform = "//build/platforms:linux_amd64_static",
63 visibility = ["//visibility:public"],
64)