{ lib, stdenvNoCC, fetchurl, makeWrapper, markdownlint-cli2, nodejs, runCommand, zstd, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "markdownlint-cli2"; version = "0.13.0"; # upstream is not interested in including package-lock.json in the source # https://github.com/DavidAnson/markdownlint-cli2/issues/198#issuecomment-1690529976 # see also https://github.com/DavidAnson/markdownlint-cli2/issues/186 # so use the tarball from the archlinux mirror src = fetchurl { url = "https://us.mirrors.cicku.me/archlinux/extra/os/x86_64/markdownlint-cli2-${finalAttrs.version}-1-any.pkg.tar.zst"; hash = "sha256-ioSVse3fS6n2wauZ0VsF6TQKy/ZsyLACQ4anNybIe+I="; }; nativeBuildInputs = [ makeWrapper zstd ]; dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/bin cp -r lib share $out makeWrapper "${lib.getExe nodejs}" "$out/bin/markdownlint-cli2" \ --add-flags "$out/lib/node_modules/markdownlint-cli2/markdownlint-cli2.js" runHook postInstall ''; passthru.tests = { smoke = runCommand "${finalAttrs.pname}-test" { nativeBuildInputs = [ markdownlint-cli2 ]; } '' markdownlint-cli2 ${markdownlint-cli2}/share/doc/markdownlint-cli2/README.md > $out ''; }; meta = { changelog = "https://github.com/DavidAnson/markdownlint-cli2/blob/v${finalAttrs.version}/CHANGELOG.md"; description = "Fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library"; homepage = "https://github.com/DavidAnson/markdownlint-cli2"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ natsukium ]; }; })