Skip to content

Commit

Permalink
textlint-rule-common-misspellings: repackage
Browse files Browse the repository at this point in the history
There is no lock file in this package, but it is old and stable enough
so that we handle dependencies manually.
  • Loading branch information
natsukium committed May 25, 2024
1 parent 950ff0d commit 5f58c6a
Show file tree
Hide file tree
Showing 6 changed files with 139 additions and 26 deletions.
135 changes: 135 additions & 0 deletions pkgs/by-name/te/textlint-rule-common-misspellings/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
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;
};
})
1 change: 1 addition & 0 deletions pkgs/by-name/te/textlint-rule-common-misspellings/test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`textlint-rule-common-misspellings` is an old and mature libary.
2 changes: 2 additions & 0 deletions pkgs/by-name/te/textlint/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
textlint-plugin-latex2e,
textlint-rule-abbr-within-parentheses,
textlint-rule-alex,
textlint-rule-common-misspellings,
textlint-rule-diacritics,
textlint-rule-en-max-word-count,
textlint-rule-max-comma,
Expand Down Expand Up @@ -109,6 +110,7 @@ buildNpmPackage rec {
textlint-plugin-latex2e
textlint-rule-abbr-within-parentheses
textlint-rule-alex
textlint-rule-common-misspellings
textlint-rule-diacritics
textlint-rule-en-max-word-count
textlint-rule-max-comma
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/node-packages/aliases.nix
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ mapAliases {
textlint-plugin-latex = throw "textlint-plugin-latex was removed because it is unmaintained for years. Please use textlint-plugin-latex2e instead."; # Added 2024-05-17
inherit (pkgs) textlint-rule-abbr-within-parentheses; # Added 2024-05-17
inherit (pkgs) textlint-rule-alex; # Added 2024-05-16
inherit (pkgs) textlint-rule-common-misspellings; # Added 2024-05-25
inherit (pkgs) textlint-rule-diacritics; # Added 2024-05-16
inherit (pkgs) textlint-rule-en-max-word-count; # Added 2024-05-17
inherit (pkgs) textlint-rule-max-comma; # Added 2024-05-15
Expand Down
1 change: 0 additions & 1 deletion pkgs/development/node-packages/node-packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,6 @@
, "tailwindcss"
, "teck-programmer"
, "tern"
, "textlint-rule-common-misspellings"
, "thelounge-plugin-closepms"
, "thelounge-plugin-giphy"
, "thelounge-plugin-shortcuts"
Expand Down
25 changes: 0 additions & 25 deletions pkgs/development/node-packages/node-packages.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 5f58c6a

Please sign in to comment.