Files
sydnix/flake.nix
2025-01-14 14:13:03 -07:00

60 lines
1.9 KiB
Nix
Executable File

{
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";
sydnix-cli.url = "path:///persist/dots/scripts/sydnix";
};
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.<name>?
# 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;
};
}