Skip to content
File

Blob: build/deps/formatters/BUILD

3.2 KB
1load("@bazel_skylib//rules:native_binary.bzl", "native_binary")
2load("@npm//:prettier/package_json.bzl", prettier = "bin")
3 
4config_setting(
5 name = "linux_amd64",
6 constraint_values = [
7 "@platforms//os:linux",
8 "@platforms//cpu:x86_64",
9 ],
10)
11 
12config_setting(
13 name = "linux_arm64",
14 constraint_values = [
15 "@platforms//os:linux",
16 "@platforms//cpu:arm64",
17 ],
18)
19 
20config_setting(
21 name = "darwin_amd64",
22 constraint_values = [
23 "@platforms//os:macos",
24 "@platforms//cpu:x86_64",
25 ],
26)
27 
28config_setting(
29 name = "darwin_arm64",
30 constraint_values = [
31 "@platforms//os:macos",
32 "@platforms//cpu:arm64",
33 ],
34)
35 
36config_setting(
37 name = "windows_amd64",
38 constraint_values = [
39 "@platforms//os:windows",
40 "@platforms//cpu:x86_64",
41 ],
42)
43 
44native_binary(
45 name = "clang-format@rule",
46 src = select({
47 ":linux_amd64": "@clang-format-linux-amd64//file:file",
48 ":linux_arm64": "@clang-format-linux-arm64//file:file",
49 ":darwin_arm64": "@clang-format-darwin-arm64//file:file",
50 "//conditions:default": "@clang-format-linux-amd64//file:file",
51 }),
52 out = "clang-format",
53 tags = ["manual"],
54 visibility = ["//visibility:public"],
55)
56 
57native_binary(
58 name = "ruff@rule",
59 src = select({
60 ":linux_amd64": "@ruff-linux-amd64//:file",
61 ":linux_arm64": "@ruff-linux-arm64//:file",
62 ":darwin_arm64": "@ruff-darwin-arm64//:file",
63 "//conditions:default": "@ruff-linux-amd64//:file",
64 }),
65 out = "ruff",
66 tags = ["manual"],
67 visibility = ["//visibility:public"],
68)
69 
70native_binary(
71 name = "buildifier@rule",
72 src = select({
73 ":linux_amd64": "@buildifier-linux-amd64//file:file",
74 ":linux_arm64": "@buildifier-linux-arm64//file:file",
75 ":darwin_amd64": "@buildifier-darwin-amd64//file:file",
76 ":darwin_arm64": "@buildifier-darwin-arm64//file:file",
77 ":windows_amd64": "@buildifier-windows-amd64//file:file",
78 "//conditions:default": "@buildifier-linux-amd64//file:file",
79 }),
80 out = "buildifier",
81 tags = ["manual"],
82 visibility = ["//visibility:public"],
83)
84 
85native_binary(
86 name = "rustfmt@rule",
87 src = select({
88 ":linux_amd64": "@rustfmt-standalone-linux-amd64//:rustfmt",
89 ":linux_arm64": "@rustfmt-standalone-linux-arm64//:rustfmt",
90 ":darwin_arm64": "@rustfmt-standalone-darwin-arm64//:rustfmt",
91 "//conditions:default": "@rustfmt-standalone-linux-amd64//:rustfmt",
92 }),
93 out = "rustfmt",
94 tags = ["manual"],
95 visibility = ["//visibility:public"],
96)
97 
98prettier.prettier_binary(
99 name = "prettier@rule",
100 # Include this js_library and its dependencies in the runfiles (runtime dependencies)
101 data = ["//:prettierrc"],
102 # Allow the binary to be run outside bazel
103 env = {"BAZEL_BINDIR": "."},
104 fixed_args = [
105 # `require` statements in the config file will be resolved relative to its location
106 # Therefore to make it hermetic, prettier must be pointed at the copy of the config file
107 # in the runfiles folder rather than the one in the source folder.
108 "--config=\"$$JS_BINARY__RUNFILES\"/$(rlocationpath //:prettierrc)",
109 "--log-level=warn",
110 ],
111)