nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 nodejs,
6 fetchPnpmDeps,
7 pnpmConfigHook,
8 pnpm,
9 makeBinaryWrapper,
10 nix-update-script,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "nrm";
15 version = "2.1.0";
16
17 src = fetchFromGitHub {
18 owner = "pana";
19 repo = "nrm";
20 tag = "v${finalAttrs.version}";
21 hash = "sha256-2P0dSZa17A3NslNatCx1edLnrcDtGGpOlk6srcvjL1Y=";
22 };
23
24 nativeBuildInputs = [
25 nodejs
26 pnpmConfigHook
27 pnpm
28 makeBinaryWrapper
29 ];
30
31 pnpmDeps = fetchPnpmDeps {
32 inherit (finalAttrs) pname version src;
33 fetcherVersion = 2;
34 hash = "sha256-PENYS5xO2LwT3+TGl/wU2r0ALEj/JQfbkpf/0MJs0uw=";
35 };
36
37 buildPhase = ''
38 runHook preBuild
39
40 pnpm run build
41
42 runHook postBuild
43 '';
44
45 installPhase = ''
46 runHook preInstall
47
48 mkdir -p $out/lib/node_modules/nrm
49 mkdir $out/bin
50 mv * $out/lib/node_modules/nrm/
51 makeWrapper ${lib.getExe nodejs} $out/bin/nrm \
52 --add-flags "$out/lib/node_modules/nrm/dist/index.js" \
53 --set "NODE_PATH" "$out/lib/node_modules/nrm/node_modules"
54
55 runHook postInstall
56 '';
57
58 passthru.updateScript = nix-update-script { };
59
60 meta = {
61 changelog = "https://github.com/Pana/nrm/releases/tag/v${finalAttrs.version}";
62 description = "Helps you switch between npm registries easily";
63 homepage = "https://github.com/Pana/nrm";
64 license = lib.licenses.mit;
65 maintainers = with lib.maintainers; [ pyrox0 ];
66 mainProgram = "nrm";
67 };
68})