about summary refs log tree commit diff
path: root/pkgs/by-name/ve/vencord/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ve/vencord/package.nix')
-rw-r--r--pkgs/by-name/ve/vencord/package.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix
new file mode 100644
index 0000000000000..5b6a88bf31841
--- /dev/null
+++ b/pkgs/by-name/ve/vencord/package.nix
@@ -0,0 +1,65 @@
+{ buildNpmPackage
+, fetchFromGitHub
+, lib
+, esbuild
+, buildWebExtension ? false
+}:
+let
+  version = "1.7.9";
+  gitHash = "d294128";
+in
+buildNpmPackage rec {
+  pname = "vencord";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "Vendicated";
+    repo = "Vencord";
+    rev = "v${version}";
+    hash = "sha256-iXcWz/ZqhCQnqS37LVTXYW+1eeos0AUA0O5URb2FELU=";
+  };
+
+  ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
+    version = "0.15.18";
+    src = fetchFromGitHub {
+      owner = "evanw";
+      repo = "esbuild";
+      rev = "v${final.version}";
+      hash = "sha256-b9R1ML+pgRg9j2yrkQmBulPuLHYLUQvW+WTyR/Cq6zE=";
+    };
+    vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
+  }));
+
+  # Supresses an error about esbuild's version.
+  npmRebuildFlags = [ "|| true" ];
+
+  makeCacheWritable = true;
+  npmDepsHash = "sha256-G3adLiSrEyAShTsNEaYLEPYACHoXTISiNp/9jru0mUc=";
+  npmFlags = [ "--legacy-peer-deps" ];
+  npmBuildScript = if buildWebExtension then "buildWeb" else "build";
+  npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
+
+  prePatch = ''
+    cp ${./package-lock.json} ./package-lock.json
+    chmod +w ./package-lock.json
+  '';
+
+  VENCORD_HASH = gitHash;
+  VENCORD_REMOTE = "${src.owner}/${src.repo}";
+
+  installPhase =
+    if buildWebExtension then ''
+      cp -r dist/chromium-unpacked/ $out
+    '' else ''
+      cp -r dist/ $out
+    '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Vencord web extension";
+    homepage = "https://github.com/Vendicated/Vencord";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ FlafyDev fwam NotAShelf Scrumplex ];
+  };
+}