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  )