29 lines
		
	
	
		
			658 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			658 B
		
	
	
	
		
			Python
		
	
	
	
| load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
 | |
| 
 | |
| def _impl(ctx):
 | |
|     rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
 | |
| 
 | |
|     script = """
 | |
|     exec ./{home}/sbin/{cmd} "$@"
 | |
|     """.format(
 | |
|         home = rabbitmq_home_path,
 | |
|         cmd = ctx.label.name,
 | |
|     )
 | |
| 
 | |
|     ctx.actions.write(
 | |
|         output = ctx.outputs.executable,
 | |
|         content = script,
 | |
|     )
 | |
| 
 | |
|     return [DefaultInfo(
 | |
|         runfiles = ctx.runfiles(ctx.attr.home[DefaultInfo].files.to_list()),
 | |
|     )]
 | |
| 
 | |
| rabbitmqctl = rule(
 | |
|     implementation = _impl,
 | |
|     attrs = {
 | |
|         "home": attr.label(providers = [RabbitmqHomeInfo]),
 | |
|     },
 | |
|     executable = True,
 | |
| )
 |