forked from SeleniumHQ/selenium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate_devtools.bzl
50 lines (46 loc) · 1.33 KB
/
generate_devtools.bzl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
def _generate_devtools_impl(ctx):
outdir = ctx.actions.declare_directory(ctx.attr.outdir)
args = ctx.actions.args()
args.add(ctx.file.browser_protocol)
args.add(ctx.file.js_protocol)
args.add(outdir.path)
ctx.actions.run(
executable = ctx.executable.generator,
progress_message = "Generating {} DevTools Protocol bindings for Python".format(ctx.attr.protocol_version),
arguments = [args],
outputs = [
outdir,
],
inputs = [
ctx.file.browser_protocol,
ctx.file.js_protocol,
],
use_default_shell_env = True,
)
return DefaultInfo(
files = depset([outdir]),
runfiles = ctx.runfiles(files = [outdir]),
)
generate_devtools = rule(
implementation = _generate_devtools_impl,
attrs = {
"protocol_version": attr.string(
mandatory = True,
default = "",
),
"browser_protocol": attr.label(
mandatory = True,
allow_single_file = True,
),
"js_protocol": attr.label(
mandatory = True,
allow_single_file = True,
),
"outdir": attr.string(),
"generator": attr.label(
executable = True,
cfg = "exec",
),
"deps": attr.label_list(),
},
)