# SPDX-FileCopyrightText: 2020 Luke Granger-Brown <depot@lukegb.com>
#
# SPDX-License-Identifier: Apache-2.0

{ pkgs, ... }:
let
  jdk = pkgs.openjdk11_headless;
in
pkgs.buildBazelPackage rec {
  name = "copybara";
  version = "master";

  src = ../../third_party/copybara;

  nativeBuildInputs = with pkgs; [ git mercurial jdk makeWrapper ];

  bazelTarget = "//java/com/google/copybara:copybara_deploy.jar";
  removeRulesCC = false;
  fetchConfigured = true;
  bazelFlags = [
    "--javabase=@local_jdk//:jdk"
    "--host_javabase=@local_jdk//:jdk"
  ];

  fetchAttrs = {
    sha256 = "sha256:195av0bvgqgs7wwzx14yrrww582ijadvjdx82hx4911lp4jlbg8d";
    preHook = ''
      export COURSIER_CACHE="$(echo ''${NIX_BUILD_TOP}/tmp/coursier | sed -e 's,//,/,g')"
    '';
  };

  buildAttrs = {
    installPhase = ''
      mkdir -p $out/bin $out/share/java
      install -Dm755 bazel-bin/java/com/google/copybara/copybara_deploy.jar $out/share/java/copybara.jar
      makeWrapper ${pkgs.jdk}/bin/java $out/bin/copybara \
        --add-flags "-cp $out/share/java/copybara.jar com.google.copybara.Main"
    '';
  };
}