btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / no / node-red / package.nix
blob91df4684ba470f8d102b87623aa4be36f6ab431e
2   buildNpmPackage,
3   fetchFromGitHub,
4   jq,
5   lib,
6   nixosTests,
7 }:
9 buildNpmPackage rec {
10   pname = "node-red";
11   version = "4.0.4";
13   src = fetchFromGitHub {
14     owner = "node-red";
15     repo = "node-red";
16     rev = "refs/tags/${version}";
17     hash = "sha256-s+3OrTj/VwjnK6Ml+4aSlLo/GcpC6BWmGmxAaj1SsMI=";
18   };
20   npmDepsHash = "sha256-y3agiGh5qApyjFUkxjgEG+Ztx1FL4IOMaJsS4WwZY/c=";
22   postPatch =
23     let
24       packageDir = "packages/node_modules/node-red";
25     in
26     ''
27       ln -s ${./package-lock.json} package-lock.json
29       ${lib.getExe jq} '. += {"bin": {"node-red": "${packageDir}/red.js", "node-red-pi": "${packageDir}/bin/node-red-pi"}}' package.json > package.json.tmp
30       mv package.json.tmp package.json
31     '';
33   makeCacheWritable = true;
35   passthru = {
36     tests = {
37       inherit (nixosTests) node-red;
38     };
39     updateScript = ./update.sh;
40   };
42   meta = {
43     changelog = "https://github.com/node-red/node-red/blob/${src.rev}/CHANGELOG.md";
44     description = "Low-code programming for event-driven applications";
45     homepage = "https://nodered.org/";
46     license = lib.licenses.asl20;
47     mainProgram = "node-red";
48     maintainers = with lib.maintainers; [ matthewcroughan ];
49   };