summaryrefslogtreecommitdiff
path: root/flake.nix
blob: 0a5e3150f0b789607a1ba1250170e78c166c324f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-25.05";
  inputs.nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
  inputs.disko.url = "github:nix-community/disko";
  inputs.disko.inputs.nixpkgs.follows = "nixpkgs";
  inputs.agenix.url = "github:ryantm/agenix";

  outputs = {
    nixpkgs,
    nixpkgs-unstable,
    disko,
    agenix,
    ...
  } @ inputs: let
    lib = nixpkgs.lib;
    inherit (lib) filter hasSuffix;
    listModules' = path: lib.filesystem.listFilesRecursive path |> filter (hasSuffix ".nix");
    unstable = import nixpkgs-unstable {system = "x86_64-linux";};
  in {
    nixosConfigurations.experimental-nixos = nixpkgs.lib.nixosSystem rec {
      system = "x86_64-linux";
      specialArgs = {inherit inputs unstable nixpkgs-unstable;};
      modules =
        [
          disko.nixosModules.disko
          agenix.nixosModules.default
          ./hardware-configuration.nix
        ]
        ++ (listModules' modules/common)
        ++ (listModules' hosts/experimental-nixos)
        ++ (listModules' modules/disks/bcachefs);
    };
  };
}