Skip to content

Commit

Permalink
Use genrules to copy the entrypoint and descriptor into the package (#24
Browse files Browse the repository at this point in the history
)

Simplifies embedding pathing
  • Loading branch information
pcj committed Jun 14, 2023
1 parent 935786e commit 9ee2120
Showing 1 changed file with 24 additions and 12 deletions.
36 changes: 24 additions & 12 deletions rules/grpcstar_binary.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ def _grpcstar_entrypoint_impl(ctx):
)
return [DefaultInfo(
files = depset([ctx.outputs.go]),
runfiles = None,
data_runfiles = None,
default_runfiles = None,
executable = None,
)]

_grpcstar_entrypoint = rule(
Expand Down Expand Up @@ -55,8 +51,10 @@ def grpcstar_binary(**kwargs):
None
"""
name = kwargs.pop("name")
mainname = name + "_main"
goname = name + "_main"
libname = name + "_lib"
starname = name + "_star"
dname = name + "_descriptor"

scripts = kwargs.pop("scripts", [])
srcs = kwargs.pop("srcs", [])
Expand All @@ -73,21 +71,35 @@ def grpcstar_binary(**kwargs):
if not main:
fail("grpcstar_binary.main is required")

native.genrule(
name = starname,
srcs = [main],
outs = [name + ".star"],
cmd = "cp $< $@",
)

native.genrule(
name = dname,
srcs = [descriptor],
outs = [name + ".descriptor"],
cmd = "cp $< $@",
)

_grpcstar_entrypoint(
name = mainname,
main = main,
descriptor = descriptor,
name = goname,
main = starname,
descriptor = dname,
)

go_library(
name = libname,
srcs = srcs + [mainname],
srcs = srcs + [goname],
importpath = importpath,
embedsrcs = [main, descriptor] + scripts,
embedsrcs = [starname, dname] + scripts,
visibility = visibility,
deps = deps + [
"//pkg/program",
"//pkg/protodescriptorset",
str(Label("//pkg/program")),
str(Label("//pkg/protodescriptorset")),
],
)

Expand Down

0 comments on commit 9ee2120

Please sign in to comment.