nerdfonts: fix wrong attribute name in error message (#364463)
[NixPkgs.git] / pkgs / by-name / ve / vencord / package.nix
blob763d671f28bedc84decf2c54d46eb05e62610ae9
2   curl,
3   esbuild,
4   fetchFromGitHub,
5   git,
6   jq,
7   lib,
8   nix-update,
9   nodejs,
10   pnpm,
11   stdenv,
12   writeShellScript,
13   buildWebExtension ? false,
15 stdenv.mkDerivation (finalAttrs: {
16   pname = "vencord";
17   version = "1.10.8";
19   src = fetchFromGitHub {
20     owner = "Vendicated";
21     repo = "Vencord";
22     rev = "v${finalAttrs.version}";
23     hash = "sha256-2UOz8o+3jWppk6lWatbG0avcqBFpxHYSMEspCpFWWOk=";
24   };
26   pnpmDeps = pnpm.fetchDeps {
27     inherit (finalAttrs) pname src;
29     hash = "sha256-vVzERis1W3QZB/i6SQR9dQR56yDWadKWvFr+nLTQY9Y=";
30   };
32   nativeBuildInputs = [
33     git
34     nodejs
35     pnpm.configHook
36   ];
38   env = {
39     ESBUILD_BINARY_PATH = lib.getExe (
40       esbuild.overrideAttrs (
41         final: _: {
42           version = "0.15.18";
43           src = fetchFromGitHub {
44             owner = "evanw";
45             repo = "esbuild";
46             rev = "v${final.version}";
47             hash = "sha256-b9R1ML+pgRg9j2yrkQmBulPuLHYLUQvW+WTyR/Cq6zE=";
48           };
49           vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
50         }
51       )
52     );
53     VENCORD_REMOTE = "${finalAttrs.src.owner}/${finalAttrs.src.repo}";
54     VENCORD_HASH = "${finalAttrs.version}";
55   };
57   buildPhase = ''
58     runHook preBuild
60     pnpm run ${if buildWebExtension then "buildWeb" else "build"} \
61       -- --standalone --disable-updater
63     runHook postBuild
64   '';
66   installPhase = ''
67     runHook preInstall
69     cp -r dist/${lib.optionalString buildWebExtension "chromium-unpacked/"} $out
71     runHook postInstall
72   '';
74   # We need to fetch the latest *tag* ourselves, as nix-update can only fetch the latest *releases* from GitHub
75   # Vencord had a single "devbuild" release that we do not care about
76   passthru.updateScript = writeShellScript "update-vencord" ''
77     export PATH="${
78       lib.makeBinPath [
79         curl
80         jq
81         nix-update
82       ]
83     }:$PATH"
84     ghTags=$(curl ''${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/Vendicated/Vencord/tags")
85     latestTag=$(echo "$ghTags" | jq -r .[0].name)
87     echo "Latest tag: $latestTag"
89     exec nix-update --version "$latestTag" "$@"
90   '';
92   meta = with lib; {
93     description = "Vencord web extension";
94     homepage = "https://github.com/Vendicated/Vencord";
95     license = licenses.gpl3Only;
96     maintainers = with maintainers; [
97       FlafyDev
98       NotAShelf
99       Scrumplex
100       donteatoreo
101     ];
102   };