2023-02-24 16:16:15 +02:00
|
|
|
{ config, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
hourType = types.submodule {
|
|
|
|
imports = [
|
|
|
|
./hour/enterprise.nix
|
|
|
|
./hour/hyprspace.nix
|
|
|
|
./hour/interfaces.nix
|
|
|
|
./hour/nixos.nix
|
|
|
|
./hour/ssh.nix
|
2024-08-01 21:44:02 +03:00
|
|
|
./hour/hardware.nix
|
2023-02-24 16:16:15 +02:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
mkHours = description: mkOption {
|
|
|
|
inherit description;
|
|
|
|
type = with types; attrsOf hourType;
|
|
|
|
default = {};
|
|
|
|
};
|
|
|
|
in
|
|
|
|
|
|
|
|
{
|
|
|
|
options = {
|
|
|
|
gods = {
|
|
|
|
fromLight = mkHours "Gods-from-Light: The emanations of The Glory";
|
|
|
|
fromFlesh = mkHours "Gods-from-Flesh: Mortals who penetrated the Mansus";
|
|
|
|
fromNowhere = mkHours "Gods-from-Nowhere: Lesser Hours";
|
|
|
|
};
|
|
|
|
hours = mkHours "Hours are the incarnate principles of the world." // {
|
|
|
|
readOnly = true;
|
|
|
|
default = with config.gods; fromLight // fromFlesh // fromNowhere;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|