12 stdenv.mkDerivation rec {
13 pname = "mermaid-cli";
16 src = fetchFromGitHub {
20 hash = "sha256-o9QaJsJlfqsAguYGHAdf8aqZWbOgDJs+0KVQAVtRlA0=";
23 offlineCache = fetchYarnDeps {
24 yarnLock = "${src}/yarn.lock";
25 hash = "sha256-SfRzn5FxO+Ls+ne7ay3tySNLr+awEJ9fo/nwcAY11qA=";
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
50 yarn --offline prepare
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}' \
67 --add-flags "$out/lib/node_modules/@mermaid-js/mermaid-cli/src/cli.js"
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;
77 maintainers = with lib.maintainers; [ ysndr ];
78 platforms = lib.platforms.all;