blob: 898b057e282a71cc48aff480fc89db2b01f61843 [file] [log] [blame]
load("//bzl:rules.bzl", copy_binary="copy_go_binary")
def _plugin_yml_gen_impl(ctx):
ctx.actions.run(
mnemonic = "PluginYmlGen",
progress_message = "Generating plugin.yml",
inputs = [ctx.info_file],
outputs = [ctx.outputs.out],
executable = ctx.executable._genpluginyml,
arguments = [
"-name", ctx.label.name,
"-author", ctx.attr.author,
"-main", ctx.attr.main,
"-version", ctx.attr.version,
"-status_file", ctx.info_file.path,
"-out_file", ctx.outputs.out.path,
],
)
plugin_yml_gen = rule(
implementation = _plugin_yml_gen_impl,
attrs = {
"main": attr.string(mandatory = True),
"version": attr.string(default = ""),
"author": attr.string(default = "bazel"),
"_genpluginyml": attr.label(
default = Label("//personal/q3k/minecraft/plugin:genpluginyml"),
cfg = "host",
executable = True,
allow_files = True,
),
},
outputs = {
"out": "plugin.yml",
},
)
def bukkit_plugin(name, srcs, deps, main, author="", version=""):
ymlname = name + "-yml"
plugin_yml_gen(
name = ymlname,
author = author,
version = version,
main = main,
)
jarname = name + "-jar"
native.java_binary(
name = jarname,
create_executable = False,
srcs = srcs,
deps = deps,
classpath_resources = [":" + ymlname],
)
copy_binary(
name = name + ".jar",
src = ":" + jarname + "_deploy.jar",
)
native.alias(
name = name,
actual = ":" + name + ".jar",
)