jevhooks.git / flake.nix
1{
2  description = "jevhooks: every Claude Code hook event backed by Jev, as one Claude plugin";
3
4  inputs = {
5    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6    fenix = {
7      url = "github:nix-community/fenix";
8      inputs.nixpkgs.follows = "nixpkgs";
9    };
10  };
11
12  outputs = { nixpkgs, fenix, ... }:
13    let
14      system = "x86_64-linux";
15      pkgs = nixpkgs.legacyPackages.${system};
16      f = fenix.packages.${system};
17      # Host std for the daemon and build scripts, wasm32 std for the mod's logic.
18      rust = f.combine [
19        f.stable.cargo
20        f.stable.rustc
21        f.stable.clippy
22        f.stable.rustfmt
23        f.stable.rust-src
24        f.targets.wasm32-unknown-unknown.stable.rust-std
25      ];
26    in
27    {
28      # mkShell's stdenv supplies the host `cc` that crates' build scripts link with,
29      # even when the crate itself targets wasm32.
30      devShells.${system}.default = pkgs.mkShell {
31        packages = [ rust pkgs.binaryen pkgs.nodejs pkgs.just ];
32      };
33    };
34}