commit
96fbb517b2
3 changed files with 171 additions and 7 deletions
|
@ -1,11 +1,18 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, makeBinaryWrapper
|
||||
, runCommand
|
||||
, symlinkJoin
|
||||
, vale
|
||||
, valeStyles
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "vale";
|
||||
version = "3.4.1";
|
||||
|
||||
subPackages = [ "cmd/vale" ];
|
||||
outputs = [ "out" "data" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
|
@ -16,18 +23,29 @@ buildGoModule rec {
|
|||
|
||||
vendorHash = "sha256-HMzFLSmO6sBDNU89UoIvHcPPd3ubpti2ii4sFMKUDmI=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $data/share/vale
|
||||
cp -r testdata/styles $data/share/vale
|
||||
'';
|
||||
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" ];
|
||||
|
||||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
passthru.withStyles = selector: symlinkJoin {
|
||||
name = "vale-with-styles-${vale.version}";
|
||||
paths = [ vale ] ++ selector valeStyles;
|
||||
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||
postBuild = ''
|
||||
wrapProgram "$out/bin/vale" \
|
||||
--set VALE_STYLES_PATH "$out/share/vale/styles/"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A syntax-aware linter for prose built with speed and extensibility in mind";
|
||||
longDescription = ''
|
||||
Vale in Nixpkgs offers the helper `.withStyles` allow you to install it
|
||||
predefined styles:
|
||||
|
||||
vale.withStyles (s: [ s.alex s.google ])
|
||||
'';
|
||||
homepage = "https://vale.sh/";
|
||||
changelog = "https://github.com/errata-ai/vale/releases/tag/v${version}";
|
||||
mainProgram = "vale";
|
||||
|
|
144
pkgs/tools/text/vale/styles.nix
Normal file
144
pkgs/tools/text/vale/styles.nix
Normal file
|
@ -0,0 +1,144 @@
|
|||
{ lib, stdenvNoCC, fetchFromGitHub, fetchzip, nix-update-script }:
|
||||
|
||||
let
|
||||
buildStyle =
|
||||
{ name
|
||||
, stylePath ? name
|
||||
, ...
|
||||
}@args:
|
||||
stdenvNoCC.mkDerivation ({
|
||||
pname = "vale-style-${lib.toLower name}";
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
dontFixup = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/vale/styles
|
||||
cp -R ${stylePath} "$out/share/vale/styles/${name}"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ katexochen ];
|
||||
} // (args.meta or { });
|
||||
} // removeAttrs args [ "meta" "name" ]);
|
||||
in
|
||||
{
|
||||
alex = buildStyle rec {
|
||||
name = "alex";
|
||||
version = "0.2.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "alex";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xNF7se2FwKgNe5KYx/zvGWpIwBsBADYGH4JV1lUww+Q=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of the guidelines enforced by the alex linter";
|
||||
homepage = "https://github.com/errata-ai/alex";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
google = buildStyle rec {
|
||||
name = "Google";
|
||||
version = "0.6.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "Google";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TQS/hgS6tEWPSuZpEbX65MdYSE/+HJVcnzIuQbhIG2M=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of the Google Developer Documentation Style Guide";
|
||||
homepage = "https://github.com/errata-ai/Google";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
joblint = buildStyle rec {
|
||||
name = "Joblint";
|
||||
version = "0.4.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "Joblint";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zRz5ThOg5RLTZj3dYPe0PDvOF5DjO31lduSpi2Us87U=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of the Joblint linter";
|
||||
homepage = "https://github.com/errata-ai/Joblint";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
microsoft = buildStyle rec {
|
||||
name = "Microsoft";
|
||||
version = "0.14.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "Microsoft";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-22rGNLZOsWYQ+H3CcM2b1zOXV3kNPcgYqDpaCg1iv9o=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of the Microsoft Writing Style Guide";
|
||||
homepage = "https://github.com/errata-ai/Microsoft";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
proselint = buildStyle rec {
|
||||
name = "proselint";
|
||||
version = "0.3.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "proselint";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-faeWr1bRhnKsycJY89WqnRv8qIowUmz3EQvDyjtl63w=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of Python's proselint linter";
|
||||
homepage = "https://github.com/errata-ai/proselint";
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
};
|
||||
|
||||
readability = buildStyle rec {
|
||||
name = "Readability";
|
||||
version = "0.1.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "readability";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5Y9v8QsZjC2w3/pGIcL5nBdhpogyJznO5IFa0s8VOOI=";
|
||||
};
|
||||
meta = {
|
||||
description = "Vale-compatible implementations of many popular \"readability\" metrics";
|
||||
homepage = "https://github.com/errata-ai/readability";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
write-good = buildStyle rec {
|
||||
name = "write-good";
|
||||
version = "0.4.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "errata-ai";
|
||||
repo = "write-good";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KQzY6MeHV/owPVmUAfzGUO0HmFPkD7wdQqOvBkipwP8=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Vale-compatible implementation of the write-good linter";
|
||||
homepage = "https://github.com/errata-ai/write-good";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -24917,6 +24917,8 @@ with pkgs;
|
|||
|
||||
vale = callPackage ../tools/text/vale { };
|
||||
|
||||
valeStyles = recurseIntoAttrs (callPackages ../tools/text/vale/styles.nix { });
|
||||
|
||||
valhalla = callPackage ../development/libraries/valhalla {
|
||||
boost = boost.override { enablePython = true; python = python3; };
|
||||
protobuf = protobuf_21.override {
|
||||
|
|
Loading…
Reference in a new issue