Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ buildNpmPackage 2, fetchFromGitHub 3, lib 4, substituteAll 5, esbuild 6, buildGoModule 7, buildWebExtension ? false 8}: 9buildNpmPackage rec { 10 pname = "vencord"; 11 version = "1.2.5"; 12 13 src = fetchFromGitHub { 14 owner = "Vendicated"; 15 repo = "Vencord"; 16 rev = "v${version}"; 17 sha256 = "sha256-AqzhTzfqbYotQxLrkhkjvSPB4irL/q2fxXusWgCibpI="; 18 }; 19 20 ESBUILD_BINARY_PATH = lib.getExe (esbuild.override { 21 buildGoModule = args: buildGoModule (args // rec { 22 version = "0.15.18"; 23 src = fetchFromGitHub { 24 owner = "evanw"; 25 repo = "esbuild"; 26 rev = "v${version}"; 27 hash = "sha256-b9R1ML+pgRg9j2yrkQmBulPuLHYLUQvW+WTyR/Cq6zE="; 28 }; 29 vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; 30 }); 31 }); 32 33 # Supresses an error about esbuild's version. 34 npmRebuildFlags = [ "|| true" ]; 35 36 npmDepsHash = "sha256-Sj74qx9Tdz1EsoOVqk4ZdXTXxB4ShrFl3VRCWJ6/KcQ="; 37 npmFlags = [ "--legacy-peer-deps" ]; 38 npmBuildScript = if buildWebExtension then "buildWeb" else "build"; 39 40 prePatch = '' 41 cp ${./package-lock.json} ./package-lock.json 42 ''; 43 44 patches = [ 45 (substituteAll { 46 src = ./replace-git.patch; 47 inherit version; 48 }) 49 ]; 50 51 installPhase = if buildWebExtension then '' 52 cp -r dist/chromium-unpacked/ $out 53 '' else '' 54 cp -r dist/ $out 55 ''; 56 57 meta = with lib; { 58 description = "Vencord web extension"; 59 homepage = "https://github.com/Vendicated/Vencord"; 60 license = licenses.gpl3Only; 61 maintainers = with maintainers; [ FlafyDev NotAShelf Scrumplex ]; 62 }; 63}