toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / by-name / di / dirbuster / package.nix
blob895d74e19a87dba7e9f559762dcc78d99cc049ef
2   lib,
3   stdenv,
4   fetchurl,
5   makeBinaryWrapper,
6   copyDesktopItems,
7   makeDesktopItem,
8   unzip,
9   jdk8,
12 stdenv.mkDerivation (finalAttrs: {
13   pname = "dirbuster";
14   version = "1.0-RC1";
16   src = fetchurl {
17     url = "mirror://sourceforge/dirbuster/DirBuster%20(jar%20%2B%20lists)/${finalAttrs.version}/DirBuster-${finalAttrs.version}.tar.bz2";
18     hash = "sha256-UoEt1NkaLsKux3lr+AB+TZCCshQs2hIo63igT39V68E=";
19   };
21   desktopItems = [
22     (makeDesktopItem {
23       name = "dirbuster";
24       desktopName = "OWASP DirBuster";
25       exec = "dirbuster";
26       icon = "dirbuster";
27       comment = "Web Application Brute Forcing";
28       categories = [ "Network" ];
29     })
30   ];
32   nativeBuildInputs = [
33     makeBinaryWrapper
34     copyDesktopItems
35     unzip
36   ];
38   installPhase = ''
39     runHook preInstall
41     export JAR=$out/share/java/dirbuster.jar
42     install -Dm444 DirBuster-${finalAttrs.version}.jar $JAR
43     makeWrapper ${jdk8}/bin/java $out/bin/dirbuster \
44       --add-flags "-Duser.dir=$out/share/dirbuster/" \
45       --add-flags "-Xmx256M" \
46       --add-flags "-jar $JAR"
48     cp -r lib/ $out/share/java/lib/
50     # Copy wordlists
51     mkdir -p $out/share/dirbuster
52     for f in *.txt; do
53       cp $f $out/share/dirbuster/
54     done
56     # Extract embedded desktop icon
57     mkdir -p $out/share/pixmaps
58     unzip $JAR
59     strings com/sittinglittleduck/DirBuster/ImageCreator.class | grep iVBORw0KG | base64 -d > $out/share/pixmaps/dirbuster.png
61     runHook postInstall
62   '';
64   meta = {
65     description = "Brute force directories and files names on web/application servers";
66     homepage = "https://wiki.owasp.org/index.php/Category:OWASP_DirBuster_Project";
67     license = lib.licenses.lgpl21Only;
68     mainProgram = "dirbuster";
69     maintainers = with lib.maintainers; [ emilytrau ];
70     platforms = lib.platforms.all;
71     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
72   };