evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ca / caido / package.nix
blob6925ba116eeac94976bbaa64faeb5d088004906c
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.43.1";
19   cli = fetchurl {
20     url = "https://caido.download/releases/v${version}/caido-cli-v${version}-linux-x86_64.tar.gz";
21     hash = "sha256-6thdJf6UCzeKOgjPTkK4FsgbQ2u6Eu+tnHihXJPMEUQ=";
22   };
23   desktop = fetchurl {
24     url = "https://caido.download/releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
25     hash = "sha256-HEx+RFWF+qfFut5n1ZxKQHjSTGq5EbXAupPJ+5H5LQ0=";
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     nativeBuildInputs = [ makeWrapper ];
38     extraPkgs = pkgs: [ pkgs.libthai ];
40     extraInstallCommands = ''
41       install -m 444 -D ${appimageContents}/caido.desktop -t $out/share/applications
42       install -m 444 -D ${appimageContents}/caido.png \
43         $out/share/icons/hicolor/512x512/apps/caido.png
44       wrapProgram $out/bin/caido \
45         --set WEBKIT_DISABLE_COMPOSITING_MODE 1
46     '';
47   };
49   wrappedCli = stdenv.mkDerivation {
50     src = cli;
51     inherit pname version;
53     nativeBuildInputs = [ autoPatchelfHook ];
55     buildInputs = [ libgcc ];
57     sourceRoot = ".";
59     installPhase = ''
60       runHook preInstall
61       install -m755 -D caido-cli $out/bin/caido-cli
62     '';
63   };
65   meta = {
66     description = "Lightweight web security auditing toolkit";
67     homepage = "https://caido.io/";
68     changelog = "https://github.com/caido/caido/releases/tag/v${version}";
69     license = lib.licenses.unfree;
70     maintainers = with lib.maintainers; [
71       octodi
72       d3vil0p3r
73     ];
74     platforms = [ "x86_64-linux" ];
75   };
78 lib.checkListOfEnum "${pname}: appVariants" appVariantList appVariants (
79   if appVariants == [ "desktop" ] then
80     wrappedDesktop
81   else if appVariants == [ "cli" ] then
82     wrappedCli
83   else
84     stdenv.mkDerivation {
85       inherit pname version meta;
86       dontUnpack = true;
87       installPhase = ''
88         mkdir -p $out/bin
89         ln -s ${wrappedDesktop}/bin/caido $out/bin/caido
90         ln -s ${wrappedCli}/bin/caido-cli $out/bin/caido-cli
91       '';
92     }