github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/example/golden/testdata/starlark_java/lib/plugins.star (about) 1 """starlark plugin definitions""" 2 3 def _configure_java(ctx): 4 """_configure_java prepares the PluginConfiguration for the builtin protoc java plugin. 5 6 Args: 7 ctx (protoc.PluginContext): The context object. 8 Returns: 9 config (PluginConfiguration): The configured PluginConfiguration object. 10 """ 11 12 # replicating the following golang in starlark: 13 # 14 # srcjar := path.Join(ctx.Rel, ctx.ProtoLibrary.BaseName()+".srcjar") 15 # return &protoc.PluginConfiguration{ 16 # Label: label.New("build_stack_rules_proto", "plugin/builtin", "java"), 17 # Outputs: []string{srcjar}, 18 # Out: srcjar, 19 # Options: ctx.PluginConfig.GetOptions(), 20 # } 21 srcjar = ctx.proto_library.base_name + ".srcjar" 22 if ctx.rel: 23 srcjar = "/".join([ctx.rel, srcjar]) 24 25 config = protoc.PluginConfiguration( 26 label = "@build_stack_rules_proto//plugin/builtin:java", 27 outputs = [srcjar], 28 out = srcjar, 29 options = ctx.plugin_config.options, 30 ) 31 32 return config 33 34 protoc.Plugin( 35 name = "java", 36 configure = _configure_java, 37 )