biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / yarn / default.nix
blob9d95676ec2cea1361cea54e42ae01f92b3b01be6
1 { lib
2 , fetchFromGitHub
3 , fetchzip
4 , nodejs
5 , stdenvNoCC
6 , testers
7 , gitUpdater
8 , withNode ? true
9 }:
11 let
12   completion = fetchFromGitHub {
13     owner = "dsifford";
14     repo = "yarn-completion";
15     rev = "v0.17.0";
16     hash = "sha256-z7KPXeYPPRuaEPxgY6YqsLt9n8cSsW3n2FhOzVde1HU=";
17   };
19 stdenvNoCC.mkDerivation (finalAttrs: {
20   pname = "yarn";
21   version = "1.22.22";
23   src = fetchzip {
24     url = "https://github.com/yarnpkg/yarn/releases/download/v${finalAttrs.version}/yarn-v${finalAttrs.version}.tar.gz";
25     sha256 = "sha256-kFa+kmnBerTB7fY/IvfAFy/4LWvrl9lrRHMOUdOZ+Wg=";
26   };
28   buildInputs = lib.optionals withNode [ nodejs ];
30   installPhase = ''
31     mkdir -p $out/{bin,libexec/yarn/,share/bash-completion/completions/}
32     cp -R . $out/libexec/yarn
33     ln -s $out/libexec/yarn/bin/yarn.js $out/bin/yarn
34     ln -s $out/libexec/yarn/bin/yarn.js $out/bin/yarnpkg
35     ln -s ${completion}/yarn-completion.bash $out/share/bash-completion/completions/yarn.bash
36   '';
38   passthru = {
39     tests.version = lib.optionalAttrs withNode (testers.testVersion {
40       package = finalAttrs.finalPackage;
41     });
43     updateScript = gitUpdater {
44       url = "https://github.com/yarnpkg/yarn.git";
45       rev-prefix = "v";
46     };
47   };
49   meta = with lib; {
50     description = "Fast, reliable, and secure dependency management for javascript";
51     homepage = "https://classic.yarnpkg.com/";
52     changelog = "https://github.com/yarnpkg/yarn/blob/v${finalAttrs.version}/CHANGELOG.md";
53     license = licenses.bsd2;
54     maintainers = with maintainers; [ offline screendriver marsam ];
55     platforms = platforms.all;
56     mainProgram = "yarn";
57   };