]> git.sesse.net Git - bcachefs-tools-debian/blob - flake.nix
add nix flake with checks, overlay, and default package
[bcachefs-tools-debian] / flake.nix
1 {
2         description = "Userspace tools for bcachefs";
3
4         # Nixpkgs / NixOS version to use.
5         inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
6         inputs.utils.url = "github:numtide/flake-utils";
7         inputs.filter.url = "github:numtide/nix-filter";
8
9         outputs = { self, nixpkgs, utils, filter, ... }@inputs:
10                 let
11                         # System types to support.
12                         supportedSystems = [ "x86_64-linux" ];
13                 in
14                 {
15                         version = "${builtins.substring 0 8 self.lastModifiedDate}-${self.shortRev or "dirty"}";
16
17                         overlay = import ./nix/overlay.nix inputs;
18                 }
19                 // utils.lib.eachSystem supportedSystems (system: 
20                 let pkgs = import nixpkgs { 
21                         inherit system; 
22                         overlays = [ self.overlay ]; 
23                 }; 
24                 in rec {
25                         
26                         # A Nixpkgs overlay.
27
28                         # Provide some binary packages for selected system types.
29                         defaultPackage = pkgs.bcachefs.tools;
30                         packages = {
31                                 inherit (pkgs.bcachefs)
32                                         tools
33                                         toolsValgrind
34                                         toolsDebug
35                                         kernel;
36
37                                 musl-tools = pkgs.pkgsMusl.bcachefs.tools;
38                                 musl-mount = pkgs.pkgsMusl.bcachefs.mount;
39                         };
40
41                         checks = { 
42                                 kernelSrc = packages.kernel.src;
43                                 inherit (packages) 
44                                         toolsValgrind;
45                         };
46
47                         devShell = devShells.tools;
48                         devShells.tools = pkgs.bcachefs.tools.override { inShell = true; };
49                 });
50 }