mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-22 14:45:27 +00:00
5f58c6a87d
There is no lock file in this package, but it is old and stable enough so that we handle dependencies manually.
136 lines
3.8 KiB
Nix
136 lines
3.8 KiB
Nix
{
|
|
lib,
|
|
stdenvNoCC,
|
|
fetchurl,
|
|
fetchFromGitHub,
|
|
fetchYarnDeps,
|
|
fixup-yarn-lock,
|
|
nodejs,
|
|
yarn,
|
|
textlint,
|
|
textlint-rule-common-misspellings,
|
|
}:
|
|
|
|
# there is no lock file in this package, but it is old and stable enough
|
|
# so that we handle dependencies manually
|
|
let
|
|
misspellings = stdenvNoCC.mkDerivation (finalAttrs: {
|
|
pname = "misspellings";
|
|
version = "1.1.0";
|
|
|
|
src = fetchurl {
|
|
url = "https://registry.npmjs.org/misspellings/-/misspellings-${finalAttrs.version}.tgz";
|
|
hash = "sha256-+4QxmGjoF0mBldN4XQMvoK8YDS4PBV9/c+/BPf4FbkM=";
|
|
};
|
|
|
|
dontBuild = true;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib/node_modules/misspellings
|
|
cp -r . $out/lib/node_modules/misspellings/
|
|
|
|
runHook postInstall
|
|
'';
|
|
});
|
|
|
|
textlint-rule-helper = stdenvNoCC.mkDerivation (finalAttrs: {
|
|
pname = "textlint-rule-helper";
|
|
version = "2.3.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "textlint";
|
|
repo = "textlint-rule-helper";
|
|
rev = "refs/tags/v${finalAttrs.version}";
|
|
hash = "sha256-SVeL/3KC/yazSGsmn5We8fJAuVqfcspzN7i2a4+EOlI=";
|
|
};
|
|
|
|
offlineCache = fetchYarnDeps {
|
|
yarnLock = "${finalAttrs.src}/yarn.lock";
|
|
hash = "sha256-UN56VuUHl7aS+QLON8ZROTSCGKKCn/8xuIkR46LyY+U=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
fixup-yarn-lock
|
|
nodejs
|
|
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 build
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
yarn --offline --production install
|
|
rm -r test
|
|
mkdir -p $out/lib/node_modules/textlint-rule-helper
|
|
cp -r . $out/lib/node_modules/textlint-rule-helper/
|
|
|
|
runHook postInstall
|
|
'';
|
|
});
|
|
in
|
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
|
pname = "textlint-rule-common-misspellings";
|
|
version = "1.0.1";
|
|
|
|
src = fetchurl {
|
|
url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-${finalAttrs.version}.tgz";
|
|
hash = "sha256-5QVb5T2yGuunNhRQG5brJQyicRRbO8XewzjO2RzN0bI=";
|
|
};
|
|
|
|
dontBuild = true;
|
|
|
|
buildInputs = [
|
|
misspellings
|
|
textlint-rule-helper
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper
|
|
cp -r ${misspellings}/lib/node_modules/misspellings $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/misspellings
|
|
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/node_modules/* $out/lib/node_modules/textlint-rule-common-misspellings/node_modules
|
|
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/lib $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/lib
|
|
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/package.json $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/package.json
|
|
|
|
cp -r . $out/lib/node_modules/textlint-rule-common-misspellings/
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru.tests = textlint.testPackages {
|
|
rule = textlint-rule-common-misspellings;
|
|
testFile = ./test.md;
|
|
};
|
|
|
|
meta = {
|
|
description = "Textlint rule to check common misspellings";
|
|
homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
|
|
license = lib.licenses.gpl3Only;
|
|
maintainers = with lib.maintainers; [ natsukium ];
|
|
mainProgram = "textlint-rule-common-misspellings";
|
|
platforms = textlint.meta.platforms;
|
|
};
|
|
})
|