blob: cbe1934956f0475c1a7fb58ee81ff914886771dd [file] [log] [blame]
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01002load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +01003
4node_initramfs(
5 name = "initramfs",
6 files = {},
7 fsspecs = [
8 "//osbase/build:earlydev.fsspec",
9 "//third_party:firmware",
10 ],
11 visibility = ["//metropolis/cli/takeover:__subpackages__"],
12)
13
14go_library(
15 name = "takeover_lib",
16 srcs = [
17 "boot.go",
18 "install.go",
19 "main.go",
20 "takeover.go",
21 ],
22 embedsrcs = [
23 "//third_party/linux", #keep
24 "//third_party:ucode", #keep
25 ":initramfs", #keep
Jan Schär69b76872025-05-14 16:39:47 +000026 "//metropolis/node/abloader", #keep
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010027 ],
28 importpath = "source.monogon.dev/metropolis/cli/takeover",
29 visibility = ["//visibility:private"],
30 deps = [
31 "//go/logging",
Jan Schäre19d2792025-06-23 12:37:58 +000032 "//metropolis/installer/install",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010033 "//metropolis/node/core/devmgr",
34 "//metropolis/proto/api",
35 "//osbase/blockdev",
36 "//osbase/bootparam",
37 "//osbase/bringup",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010038 "//osbase/efivarfs",
39 "//osbase/kexec",
40 "//osbase/net/dump",
41 "//osbase/net/proto",
Jan Schär5fdca562025-04-14 11:33:29 +000042 "//osbase/oci",
43 "//osbase/oci/osimage",
Jan Schärc1b6df42025-03-20 08:52:18 +000044 "//osbase/structfs",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010045 "//osbase/supervisor",
46 "@com_github_cavaliergopher_cpio//:cpio",
47 "@com_github_klauspost_compress//zstd",
48 "@org_golang_google_protobuf//proto",
49 "@org_golang_x_sys//unix",
50 ],
51)
52
53go_binary(
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010054 name = "takeover",
Jan Schär2b9a0a02025-07-09 07:54:12 +000055 embed = [":takeover_lib"],
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010056 visibility = ["//visibility:public"],
57)