about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
blob: 99c6323217ab83ed3947136b54b7357176742fdc (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
49
{ stdenv, fetchurl, jre, makeWrapper }:

let
  version = "1.13.0";
  jarName = "bfg-${version}.jar";
  mavenUrl = "mirror://maven/com/madgag/bfg/${version}/${jarName}";
in
  stdenv.mkDerivation {
    inherit version jarName;

    name = "bfg-repo-cleaner-${version}";

    src = fetchurl {
      url = mavenUrl;
      sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz";
    };

    buildInputs = [ jre makeWrapper ];

    phases = "installPhase";

    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 stdenv.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).
      '';
      license = licenses.gpl3;
      maintainers = [ maintainers.changlinli ];
      platforms = platforms.unix;
      downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
    };

  }