summary refs log tree commit diff
path: root/pkgs/applications/networking/charles/default.nix
diff options
context:
space:
mode:
authoreyJhb <eyjhbb@gmail.com>2019-02-23 22:33:22 +0100
committerWael Nasreddine <wael.nasreddine@gmail.com>2019-02-23 13:33:22 -0800
commitfae3c6fb9efb4a742d706a18a82087870720f3e0 (patch)
tree51825c7702bb55a6306c9edcc7e35e1489724547 /pkgs/applications/networking/charles/default.nix
parent161122ffee8dd52ba61ff691e3ae7299d315b885 (diff)
downloadnixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar.gz
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar.bz2
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar.lz
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar.xz
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.tar.zst
nixpkgs-fae3c6fb9efb4a742d706a18a82087870720f3e0.zip
charles: made charles 4.x/3.x available (#56159)
Charles proxy requires a license and each license is bound to the major release version. Therefore it makes sense to make the previous version available to the users. This change provides two new packages `charles3` and `charles4` and `charles` is now an alias for `charles4`.
Diffstat (limited to 'pkgs/applications/networking/charles/default.nix')
-rw-r--r--pkgs/applications/networking/charles/default.nix98
1 files changed, 59 insertions, 39 deletions
diff --git a/pkgs/applications/networking/charles/default.nix b/pkgs/applications/networking/charles/default.nix
index 3f019d17702..98d4e25ef87 100644
--- a/pkgs/applications/networking/charles/default.nix
+++ b/pkgs/applications/networking/charles/default.nix
@@ -1,48 +1,68 @@
-{ stdenv, fetchurl, makeDesktopItem, jre, makeWrapper }:
+{
+stdenv
+, makeWrapper
+, makeDesktopItem
+, fetchurl
+, jre
+}:
 
 let
-  desktopItem = makeDesktopItem {
-    categories = "Network;Development;WebDevelopment;Java;";
-    desktopName = "Charles";
-    exec = "charles %F";
-    genericName  = "Web Debugging Proxy";
-    icon = "charles-proxy";
-    mimeType = "application/x-charles-savedsession;application/x-charles-savedsession+xml;application/x-charles-savedsession+json;application/har+json;application/vnd.tcpdump.pcap;application/x-charles-trace";
-    name = "Charles";
-    startupNotify = "true";
-  };
-
-in stdenv.mkDerivation rec {
-  name = "charles-${version}";
-  version = "4.2.7";
-
-  src = fetchurl {
-    url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
-    sha256 = "1nycw3wpbfwj4ijjaq5k0f4xipj8j605fs0yjzgl66gmv7r583rd";
-  };
+  generic = { version, sha256, ... }@attrs:
+  let
+    desktopItem = makeDesktopItem {
+      categories = "Network;Development;WebDevelopment;Java;";
+      desktopName = "Charles";
+      exec = "charles %F";
+      genericName  = "Web Debugging Proxy";
+      icon = "charles-proxy";
+      mimeType = "application/x-charles-savedsession;application/x-charles-savedsession+xml;application/x-charles-savedsession+json;application/har+json;application/vnd.tcpdump.pcap;application/x-charles-trace";
+      name = "Charles";
+      startupNotify = "true";
+    };
+
+    attrs' = builtins.removeAttrs attrs ["version" "sha256"];
+    in stdenv.mkDerivation rec {
+      name = "charles-${version}";
+      inherit version;
+
+      src = fetchurl {
+        url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
+        inherit sha256;
+      };
+      buildInputs = [ makeWrapper ];
 
-  buildInputs = [ makeWrapper ];
+      installPhase = ''
+        makeWrapper ${jre}/bin/java $out/bin/charles \
+          --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
 
-  installPhase = ''
-    makeWrapper ${jre}/bin/java $out/bin/charles \
-      --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
+        for fn in lib/*.jar; do
+          install -D -m644 $fn $out/share/java/$(basename $fn)
+        done
 
-    for fn in lib/*.jar; do
-      install -D -m644 $fn $out/share/java/$(basename $fn)
-    done
+        mkdir -p $out/share/applications
+        ln -s ${desktopItem}/share/applications/* $out/share/applications/
 
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+        mkdir -p $out/share/icons
+        cp -r icon $out/share/icons/hicolor
+      '';
 
-    mkdir -p $out/share/icons
-    cp -r icon $out/share/icons/hicolor
-  '';
+      meta = with stdenv.lib; {
+        description = "Web Debugging Proxy";
+        homepage = https://www.charlesproxy.com/;
+        maintainers = [ maintainers.kalbasit ];
+        license = stdenv.lib.licenses.unfree;
+        platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+      };
+    };
 
-  meta = with stdenv.lib; {
-    description = "Web Debugging Proxy";
-    homepage = https://www.charlesproxy.com/;
-    maintainers = [ maintainers.kalbasit ];
-    license = stdenv.lib.licenses.unfree;
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-  };
+in rec {
+  charles4 = (generic {
+    version = "4.2.7";
+    sha256 = "1nycw3wpbfwj4ijjaq5k0f4xipj8j605fs0yjzgl66gmv7r583rd";
+  });
+  charles3 = (generic {
+    version = "3.12.3";
+    sha256 = "13zk82ny1w5zd9qcs9qkq0kdb22ni5byzajyshpxdfm4zv6p32ss";
+  });
 }
+