Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / ca / caido / package.nix
blob97d3d5b99d3c3d54cfb8fec28e37c9988c0a8cd2
2   lib,
3   stdenv,
4   fetchurl,
5   appimageTools,
6   makeWrapper,
7   autoPatchelfHook,
8   libgcc,
9   appVariants ? [ ],
12 let
13   pname = "caido";
14   appVariantList = [
15     "cli"
16     "desktop"
17   ];
18   version = "0.39.0";
19   cli = fetchurl {
20     url = "https://storage.googleapis.com/caido-releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
21     hash = "sha256-I8UF2rzIKfpcrxyvDa4AReWDIHOKTCj3ERaWhG1xGG0=";
22   };
23   desktop = fetchurl {
24     url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
25     hash = "sha256-KYQck2+YYPLJN3L6qchacjyVyyXR3nmJDTX5GPB4WvI=";
26   };
27   appimageContents = appimageTools.extractType2 {
28     inherit pname version;
29     src = desktop;
30   };
32   wrappedDesktop = appimageTools.wrapType2 {
33     src = desktop;
34     inherit pname version;
36     extraPkgs = pkgs: [ pkgs.libthai ];
38     extraInstallCommands = ''
39       install -m 444 -D ${appimageContents}/caido.desktop -t $out/share/applications
40       install -m 444 -D ${appimageContents}/caido.png \
41         $out/share/icons/hicolor/512x512/apps/caido.png
42       source "${makeWrapper}/nix-support/setup-hook"
43       wrapProgram $out/bin/caido \
44         --set WEBKIT_DISABLE_COMPOSITING_MODE 1
45     '';
46   };
48   wrappedCli = stdenv.mkDerivation {
49     src = cli;
50     inherit pname version;
52     nativeBuildInputs = [ autoPatchelfHook ];
54     buildInputs = [ libgcc ];
56     sourceRoot = ".";
58     installPhase = ''
59       runHook preInstall
60       install -m755 -D caido-cli $out/bin/caido-cli
61     '';
62   };
64   meta = {
65     description = "Lightweight web security auditing toolkit";
66     homepage = "https://caido.io/";
67     changelog = "https://github.com/caido/caido/releases/tag/v${version}";
68     license = lib.licenses.unfree;
69     maintainers = with lib.maintainers; [
70       octodi
71       d3vil0p3r
72     ];
73     platforms = [ "x86_64-linux" ];
74   };
77 lib.checkListOfEnum "${pname}: appVariants" appVariantList appVariants (
78   if appVariants == [ "desktop" ] then
79     wrappedDesktop
80   else if appVariants == [ "cli" ] then
81     wrappedCli
82   else
83     stdenv.mkDerivation {
84       inherit pname version meta;
85       dontUnpack = true;
86       installPhase = ''
87         mkdir -p $out/bin
88         ln -s ${wrappedDesktop}/bin/caido $out/bin/caido
89         ln -s ${wrappedCli}/bin/caido-cli $out/bin/caido-cli
90       '';
91     }