| 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", |
| ) |