about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/re/regripper/package.nix
blob: a8dc3d9828f7ca2465b3f03fd4454efbe1b72586 (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
50
51
52
53
54
55
{ lib
, stdenv
, fetchFromGitHub
, perl
, perlPackages
, runtimeShell
}:

stdenv.mkDerivation rec {
  pname = "regripper";
  version = "unstable-2023-07-23";

  src = fetchFromGitHub {
    owner = "keydet89";
    repo = "RegRipper3.0";
    rev = "cee174fb6f137b14c426e97d17945ddee0d31051";
    hash = "sha256-vejIRlcVjxQJpxJabJJcljODYr+lLJjYINVtAPObvkQ=";
  };

  propagatedBuildInputs = [ perl perlPackages.ParseWin32Registry ];

  postPatch = ''
    substituteInPlace rip.pl rr.pl \
      --replace \"plugins/\" \"$out/share/regripper/plugins/\" \
      --replace \"plugins\" \"$out/share/regripper/plugins\"
  '';

  installPhase = ''
    runHook preInstall

    mkdir -p $out/{bin,share}

    rm -r *.md *.exe *.bat *.dll

    cp -aR . "$out/share/regripper/"

    cat > "$out/bin/${pname}" << EOF
    #!${runtimeShell}
    exec ${perl}/bin/perl $out/share/regripper/rip.pl "\$@"
    EOF

    chmod u+x  "$out/bin/${pname}"

    runHook postInstall
  '';

  meta = with lib; {
    description = "Open source forensic software used as a Windows Registry data extraction command line";
    mainProgram = "regripper";
    homepage = "https://github.com/keydet89/RegRipper3.0";
    maintainers = with maintainers; [ d3vil0p3r ];
    platforms = platforms.unix;
    license = licenses.mit;
  };
}