biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / tabnine / default.nix
blob4426e2bbf81fcb41bc7c4cf567d9a14869455c94
1 { stdenv, lib, fetchurl, unzip }:
2 let
3   sources = lib.importJSON ./sources.json;
4   platform =
5     if (builtins.hasAttr stdenv.hostPlatform.system sources.platforms) then
6       builtins.getAttr (stdenv.hostPlatform.system) sources.platforms
7     else
8       throw "Not supported on ${stdenv.hostPlatform.system}";
9 in
10 stdenv.mkDerivation {
11   pname = "tabnine";
12   inherit (sources) version;
14   src = fetchurl {
15     url = "https://update.tabnine.com/bundles/${sources.version}/${platform.name}/TabNine.zip";
16     inherit (platform) hash;
17   };
19   dontBuild = true;
21   # Work around the "unpacker appears to have produced no directories"
22   # case that happens when the archive doesn't have a subdirectory.
23   sourceRoot = ".";
25   nativeBuildInputs = [ unzip ];
27   installPhase = ''
28     runHook preInstall
29     install -Dm755 TabNine $out/bin/TabNine
30     install -Dm755 TabNine-deep-cloud $out/bin/TabNine-deep-cloud
31     install -Dm755 TabNine-deep-local $out/bin/TabNine-deep-local
32     install -Dm755 WD-TabNine $out/bin/WD-TabNine
33     runHook postInstall
34   '';
36   passthru = {
37     platform = platform.name;
38     updateScript = ./update.sh;
39   };
41   meta = with lib; {
42     homepage = "https://tabnine.com";
43     description = "Smart Compose for code that uses deep learning to help you write code faster";
44     license = licenses.unfree;
45     platforms = attrNames sources.platforms;
46     maintainers = with maintainers; [ lovesegfault ];
47   };