def _copy_go_binary_impl(ctx):
    output = ctx.actions.declare_file(ctx.label.name)
    for f in ctx.attr.src.files:
        # go_binary rules have two outputs, a library and the binary itself.
        # The following is a horrible hack to avoid copying the library.
        if f.path.endswith(".a"):
            continue
        ctx.action(
            inputs=[f],
            outputs=[output],
            mnemonic="CopyGoBinary",
            command="mkdir -p %s && cp %s %s" % (output.dirname, f.path, output.path))
        return [DefaultInfo(executable=output)]

copy_go_binary = rule(
    implementation=_copy_go_binary_impl,
    attrs={
        "src": attr.label(mandatory=True, allow_files=True),
    },
    executable=True,
)
