diff options
Diffstat (limited to 'third_party/gerrit_plugins/builder.nix')
-rw-r--r-- | third_party/gerrit_plugins/builder.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/third_party/gerrit_plugins/builder.nix b/third_party/gerrit_plugins/builder.nix new file mode 100644 index 000000000000..ff1754e088f3 --- /dev/null +++ b/third_party/gerrit_plugins/builder.nix @@ -0,0 +1,33 @@ +{ depot, pkgs, ... }: +{ + buildGerritBazelPlugin = { + name, + src, + depsOutputHash, + overlayPluginCmd ? '' + cp -R "${src}" "$out/plugins/${name}" + '', + postPatch ? "", + }: ((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" + ''; + postPatch = if super ? postPatch then '' + ${super.postPatch} + ${postPatch} + '' else postPatch; + })); +} |