1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 makeWrapper,
6 lldb,
7}:
8
9stdenv.mkDerivation (finalAttrs: {
10 pname = "llef";
11 version = "2.0.0";
12
13 src = fetchFromGitHub {
14 owner = "foundryzero";
15 repo = "llef";
16 rev = "v${finalAttrs.version}";
17 hash = "sha256-pAFjLaZi4Sjlq3evKT2IG+0/imf4Fp5bM2gknLKpRvs=";
18 };
19
20 dontBuild = true;
21
22 nativeBuildInputs = [ makeWrapper ];
23
24 installPhase = ''
25 runHook preInstall
26
27 mkdir -p $out/share/llef
28 cp -r llef.py arch commands common handlers $out/share/llef
29 makeWrapper ${lib.getExe lldb} $out/bin/llef \
30 --add-flags "-o 'settings set stop-disassembly-display never'" \
31 --add-flags "-o \"command script import $out/share/llef/llef.py\""
32
33 runHook postInstall
34 '';
35
36 meta = with lib; {
37 description = "LLEF is a plugin for LLDB to make it more useful for RE and VR";
38 homepage = "https://github.com/foundryzero/llef";
39 license = licenses.mit;
40 platforms = platforms.all;
41 maintainers = with maintainers; [ nrabulinski ];
42 mainProgram = "llef";
43 };
44})