Nix packages for third-party projects that don't ship their own flakes
1{
2 lib,
3 buildNpmPackage,
4 fetchFromGitHub,
5}:
6
7buildNpmPackage (finalAttrs: {
8 pname = "rook";
9 version = "0.2.0";
10
11 src = fetchFromGitHub {
12 owner = "solpbc";
13 repo = "rook";
14 rev = "v${finalAttrs.version}";
15 hash = "sha256-UCoGUWn37062HzcE1czgSoenINX9kIKpz0c4xUaYptY=";
16 };
17
18 # Vendored so automated updates can regenerate a lock with resolved URLs
19 # if upstream's lock ever drifts (same pattern as vit).
20 postPatch = ''
21 cp ${./package-lock.json} package-lock.json
22 '';
23
24 # Prefetched offline npm dependency cache.
25 # To update after a version bump:
26 # 1. Bump version/rev/src hash
27 # 2. Regenerate packages/rook/package-lock.json (see README)
28 # 3. Set npmDepsHash = lib.fakeHash, build once, paste the hash nix prints
29 npmDepsHash = "sha256-GGsQNNTyXSyfUDkYCD6bctDIV+IbAeV4d415upoLgx8=";
30
31 # Pure JS CLI — no compile step.
32 dontNpmBuild = true;
33 dontBuild = true;
34
35 npmFlags = [ "--ignore-scripts" ];
36
37 meta = {
38 description = "Agent-native identity and authentication CLI for rook.host";
39 homepage = "https://rook.host";
40 changelog = "https://github.com/solpbc/rook/releases/tag/v${finalAttrs.version}";
41 license = lib.licenses.agpl3Only;
42 mainProgram = "rook";
43 platforms = lib.platforms.all;
44 };
45})