{ description = "Madeleine's dots for the illiterate (sydnix)"; inputs = { disko.url = "github:nix-community/disko"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; impermanence.url = "github:nix-community/impermanence"; # We're using my branch until #6259 is merged. home-manager.url = "github:msyds/home-manager/service-mpdscribble"; # home-manager.url = "path:///persist/dots/DELETE-ME/home-manager"; niri.url = "github:sodiboo/niri-flake"; sops-nix.url = "github:Mic92/sops-nix"; }; outputs = { nixpkgs, ... }@inputs: # TODO: Move to utils.nix. let list-nix-directory = dir: builtins.attrNames (nixpkgs.lib.filterAttrs (k: _v: nixpkgs.lib.hasSuffix ".nix" k) (builtins.readDir dir)); # Given a path to a directory, return a module that imports «path»/*.nix collectModules = path: let modules = list-nix-directory path; in { pkgs, lib, ... }: { imports = lib.debug.traceVal (builtins.map (m: ./${path}/${m}) modules); }; in { # REVIEW: Why don't we put each module under nixosModules.? # TODO: Deduplicate. nixosModules.default = let modules = list-nix-directory ./modules/nixos; in { pkgs, lib, ... }: { imports = builtins.map (m: ./modules/nixos/${m}) modules; }; # TODO: Deduplicate. homeManagerModules.default = let modules = list-nix-directory ./modules/home; in { pkgs, lib, ... }: { imports = builtins.map (m: ./modules/home/${m}) modules; }; nixosConfigurations = import ./outputs/nixosConfigurations.nix inputs; homeConfigurations = import ./outputs/homeConfigurations.nix inputs; }; }