58 lines
1.8 KiB
Nix
Executable File
58 lines
1.8 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";
|
|
};
|
|
|
|
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;
|
|
};
|
|
}
|