evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / an / angular-language-server / package.nix
blob8c360e0ecb6838780a89319641f580e3c0d8e79e
2   lib,
3   stdenvNoCC,
4   fetchurl,
5   nodejs,
6   makeBinaryWrapper,
7   runCommand,
8   angular-language-server,
9   writeShellApplication,
10   curl,
11   common-updater-scripts,
12   unzip,
15 let
16   owner = "angular";
17   repo = "vscode-ng-language-service";
19 stdenvNoCC.mkDerivation (finalAttrs: {
20   pname = "angular-language-server";
21   version = "18.2.0";
22   src = fetchurl {
23     name = "${finalAttrs.pname}-${finalAttrs.version}.zip";
24     url = "https://github.com/${owner}/${repo}/releases/download/v${finalAttrs.version}/ng-template.vsix";
25     hash = "sha256-rl04nqSSBMjZfPW8Y+UtFLFLDFd5FSxJs3S937mhDWE=";
26   };
28   nativeBuildInputs = [
29     unzip
30     makeBinaryWrapper
31   ];
33   buildInputs = [ nodejs ];
35   installPhase = ''
36     runHook preInstall
37     install -Dm755 server/bin/ngserver $out/lib/bin/ngserver
38     install -Dm755 server/index.js $out/lib/index.js
39     cp -r node_modules $out/lib/node_modules
40     runHook postInstall
41   '';
43   postFixup = ''
44     patchShebangs $out/lib/bin/ngserver $out/lib/index.js $out/lib/node_modules
45     makeWrapper $out/lib/bin/ngserver $out/bin/ngserver \
46       --prefix PATH : ${lib.makeBinPath [ nodejs ]} \
47       --add-flags "--tsProbeLocations $out/lib/node_modules --ngProbeLocations $out/lib/node_modules"
48   '';
50   passthru = {
51     tests = {
52       start-ok = runCommand "${finalAttrs.pname}-test" { } ''
53         ${lib.getExe angular-language-server} --stdio --help &> $out
54         cat $out | grep "Angular Language Service that implements the Language Server Protocol (LSP)"
55       '';
56     };
58     updateScript = lib.getExe (writeShellApplication {
59       name = "update-${finalAttrs.pname}";
60       runtimeInputs = [
61         curl
62         common-updater-scripts
63       ];
64       text = ''
65         if [ -z "''${GITHUB_TOKEN:-}" ]; then
66             echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
67         fi
69         LATEST_VERSION=$(curl -H "Accept: application/vnd.github+json" \
70             ''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \
71           -Lsf https://api.github.com/repos/${owner}/${repo}/releases/latest | \
72           jq -r .tag_name | cut -c 2-)
73         update-source-version ${finalAttrs.pname} "$LATEST_VERSION"
74       '';
75     });
76   };
78   meta = {
79     description = "LSP for angular completions, AOT diagnostic, quick info and go to definitions";
80     homepage = "https://github.com/angular/vscode-ng-language-service";
81     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
82     changelog = "https://github.com/angular/vscode-ng-language-service/blob/${finalAttrs.version}/CHANGELOG.md";
83     license = lib.licenses.mit;
84     platforms = lib.platforms.unix;
85     mainProgram = "ngserver";
86     maintainers = with lib.maintainers; [ tricktron ];
87   };