
def _classpath_collector(ctx):
    all = set()
    for d in ctx.attr.deps:
        if hasattr(d, 'java'):
            all += d.java.transitive_runtime_deps
            all += d.java.compilation_info.runtime_classpath
        elif hasattr(d, 'files'):
            all += d.files

    as_strs = [c.path for c in all]
    ctx.file_action(output= ctx.outputs.runtime,
                    content="\n".join(sorted(as_strs)))

classpath_collector = rule(
    implementation = _classpath_collector,
    attrs = {
        "deps": attr.label_list(),
    },
    outputs={
        "runtime": "%{name}.runtime_classpath"
    })
