biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / by-name / me / mermaid-cli / package.nix
bloba11b5504bca5a7d4e4fb5b79ec2717c667ec910c
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchYarnDeps
5 , makeWrapper
6 , nodejs
7 , fixup-yarn-lock
8 , yarn
9 , chromium
12 stdenv.mkDerivation rec {
13   pname = "mermaid-cli";
14   version = "10.9.0";
16   src = fetchFromGitHub {
17     owner = "mermaid-js";
18     repo = "mermaid-cli";
19     rev = version;
20     hash = "sha256-o9QaJsJlfqsAguYGHAdf8aqZWbOgDJs+0KVQAVtRlA0=";
21   };
23   offlineCache = fetchYarnDeps {
24     yarnLock = "${src}/yarn.lock";
25     hash = "sha256-SfRzn5FxO+Ls+ne7ay3tySNLr+awEJ9fo/nwcAY11qA=";
26   };
28   nativeBuildInputs  = [
29     makeWrapper
30     nodejs
31     fixup-yarn-lock
32     yarn
33   ];
35   configurePhase = ''
36     runHook preConfigure
38     export HOME=$(mktemp -d)
39     yarn config --offline set yarn-offline-mirror "$offlineCache"
40     fixup-yarn-lock yarn.lock
41     yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
42     patchShebangs node_modules
44     runHook postConfigure
45   '';
47   buildPhase = ''
48     runHook preBuild
50     yarn --offline prepare
52     runHook postBuild
53   '';
55   installPhase = ''
56     runHook preInstall
58     yarn --offline --production install
60     mkdir -p "$out/lib/node_modules/@mermaid-js/mermaid-cli"
61     cp -r . "$out/lib/node_modules/@mermaid-js/mermaid-cli"
63     makeWrapper "${nodejs}/bin/node" "$out/bin/mmdc" \
64   '' + lib.optionalString (lib.meta.availableOn stdenv.hostPlatform chromium) ''
65       --set PUPPETEER_EXECUTABLE_PATH '${lib.getExe chromium}' \
66   '' + ''
67       --add-flags "$out/lib/node_modules/@mermaid-js/mermaid-cli/src/cli.js"
69     runHook postInstall
70   '';
72   meta = {
73     description = "Generation of diagrams from text in a similar manner as markdown";
74     homepage = "https://github.com/mermaid-js/mermaid-cli";
75     license = lib.licenses.mit;
76     mainProgram = "mmdc";
77     maintainers = with lib.maintainers; [ ysndr ];
78     platforms = lib.platforms.all;
79   };