summary refs log tree commit diff
path: root/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
blob: a759c1e86005144a4e8ea1a35fa93d464035e408 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{ lib, stdenv, fetchurl, jre, makeWrapper }:

stdenv.mkDerivation rec {
  pname = "bfg-repo-cleaner";
  version = "1.13.0";

  jarName = "bfg-${version}.jar";

  src = fetchurl {
    url = "mirror://maven/com/madgag/bfg/${version}/${jarName}";
    sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
  };

  nativeBuildInputs = [ makeWrapper ];
  buildInputs = [ jre ];

  dontUnpack = true;

  installPhase = ''
    mkdir -p $out/share/java
    mkdir -p $out/bin
    cp $src $out/share/java/$jarName
    makeWrapper "${jre}/bin/java" $out/bin/bfg --add-flags "-cp $out/share/java/$jarName com.madgag.git.bfg.cli.Main"
  '';

  meta = with lib; {
    homepage = "https://rtyley.github.io/bfg-repo-cleaner/";
    # Descriptions taken with minor modification from the homepage of bfg-repo-cleaner
    description = "Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster";
    longDescription = ''
      The BFG is a simpler, faster alternative to git-filter-branch for
      cleansing bad data out of your Git repository history, in particular removing
      crazy big files and removing passwords, credentials, and other private data.

      The git-filter-branch command is enormously powerful and can do things
      that the BFG can't - but the BFG is much better for the tasks above, because
      it's faster (10-720x), simpler (dedicated to just removing things), and
      beautiful (can use Scala instead of bash to script customizations).
    '';
    sourceProvenance = with sourceTypes; [ binaryBytecode ];
    license = licenses.gpl3;
    maintainers = [ maintainers.changlinli ];
    mainProgram = "bfg";
    platforms = platforms.unix;
    downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
  };

}