diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix b/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix new file mode 100644 index 000000000000..a42fe9754ff5 --- /dev/null +++ b/nixpkgs/pkgs/by-name/me/mermaid-cli/package.nix @@ -0,0 +1,80 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchYarnDeps +, makeWrapper +, nodejs +, prefetch-yarn-deps +, yarn +, chromium +}: + +stdenv.mkDerivation rec { + pname = "mermaid-cli"; + version = "10.4.0"; + + src = fetchFromGitHub { + owner = "mermaid-js"; + repo = "mermaid-cli"; + rev = version; + hash = "sha256-mzBN/Hg/03+jYyoAHvjx33HC46ZA6dtHmiSnaExCRR0="; + }; + + offlineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-RQsRGzkuPgGVuEpF5lzv26XKMPLX2NrsjVkGMMkCbO4="; + }; + + nativeBuildInputs = [ + makeWrapper + nodejs + prefetch-yarn-deps + yarn + ]; + + configurePhase = '' + runHook preConfigure + + export HOME=$(mktemp -d) + yarn config --offline set yarn-offline-mirror "$offlineCache" + fixup-yarn-lock yarn.lock + yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install + patchShebangs node_modules + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + yarn --offline prepare + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + yarn --offline --production install + + mkdir -p "$out/lib/node_modules/@mermaid-js/mermaid-cli" + cp -r . "$out/lib/node_modules/@mermaid-js/mermaid-cli" + + makeWrapper "${nodejs}/bin/node" "$out/bin/mmdc" \ + '' + lib.optionalString (lib.meta.availableOn stdenv.targetPlatform chromium) '' + --set PUPPETEER_EXECUTABLE_PATH '${lib.getExe chromium}' \ + '' + '' + --add-flags "$out/lib/node_modules/@mermaid-js/mermaid-cli/src/cli.js" + + runHook postInstall + ''; + + meta = { + description = "Generation of diagrams from text in a similar manner as markdown"; + homepage = "https://github.com/mermaid-js/mermaid-cli"; + license = lib.licenses.mit; + mainProgram = "mmdc"; + maintainers = with lib.maintainers; [ ysndr ]; + platforms = lib.platforms.all; + }; +} |