Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / po / postlight-parser / package.nix
blobfd0617ede1f2efa8f571e7e350bcf4795c416c52
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchYarnDeps
5 , yarnConfigHook
6 , yarnBuildHook
7 , nodejs
8 , npmHooks
9 }:
11 stdenv.mkDerivation (finalAttrs: {
12   pname = "postlight-parser";
13   version = "2.2.3";
15   src = fetchFromGitHub {
16     owner = "postlight";
17     repo = "parser";
18     rev = "v${finalAttrs.version}";
19     hash = "sha256-k6m95FHeJ+iiWSeY++1zds/bo1RtNXbnv2spaY/M+L0=";
20   };
22   offlineCache = fetchYarnDeps {
23     yarnLock = "${finalAttrs.src}/yarn.lock";
24     hash = "sha256-Vs8bfkhEbPv33ew//HBeDnpQcyWveByHi1gUsdl2CNI=";
25   };
27   nativeBuildInputs = [
28     yarnConfigHook
29     yarnBuildHook
30     nodejs
31     npmHooks.npmInstallHook
32   ];
33   # Upstream doesn't include a script in package.json that only builds without
34   # testing, and tests fail because they need to access online websites. Hence
35   # we use the builtin interface of yarnBuildHook to lint, and in `postBuild`
36   # we run the rest of commands needed to create the js files eventually
37   # distributed and wrapped by npmHooks.npmInstallHook
38   yarnBuildScript = "lint";
39   postBuild = ''
40     yarn --offline run rollup -c
41   '';
42   # Tries to download stuff from the internet in this phase.
43   dontNpmPrune = true;
45   meta = {
46     changelog = "https://github.com/postlight/parser/blob/${finalAttrs.src.rev}/CHANGELOG.md";
47     homepage = "https://reader.postlight.com";
48     description = "Extracts the bits that humans care about from any URL you give it";
49     license = lib.licenses.mit;
50     maintainers = with lib.maintainers; [ viraptor ];
51     mainProgram = "postlight-parser";
52   };