This looks particularly obnoxious for the owners plugin, because it's actually two plugins with a common library in the same repo. Other plugins are much cleaner to deal with (hence the default for overlayPluginCmd). Change-Id: Ibb9588c8a29b63e8509436fcbb70054e89349712 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1461 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ depot, pkgs, ... }:
 | 
						|
{
 | 
						|
  buildGerritBazelPlugin = {
 | 
						|
    name,
 | 
						|
    src,
 | 
						|
    depsOutputHash,
 | 
						|
    overlayPluginCmd ? ''
 | 
						|
      cp -R "${src}" "$out/plugins/${name}"
 | 
						|
    '',
 | 
						|
  }: ((depot.third_party.gerrit.override {
 | 
						|
    name = "${name}.jar";
 | 
						|
 | 
						|
    src = pkgs.runCommandLocal "${name}-src" {} ''
 | 
						|
      cp -R "${depot.third_party.gerrit.src}" "$out"
 | 
						|
      chmod +w "$out/plugins"
 | 
						|
      ${overlayPluginCmd}
 | 
						|
    '';
 | 
						|
 | 
						|
    bazelTarget = "//plugins/${name}";
 | 
						|
  }).overrideAttrs (super: {
 | 
						|
    deps = super.deps.overrideAttrs (superDeps: {
 | 
						|
      outputHash = depsOutputHash;
 | 
						|
    });
 | 
						|
    installPhase = ''
 | 
						|
      cp "bazel-bin/plugins/${name}/${name}.jar" "$out"
 | 
						|
    '';
 | 
						|
  }));
 | 
						|
}
 |