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