summaryrefslogtreecommitdiff
path: root/lib/lib.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-07-05 07:30:49 -0400
committerseth <[email protected]>2024-07-09 15:38:51 -0400
commit5fe2777acda756ae69f59e084afd9f6d35a535da (patch)
treeb8a0bd2d2b2dd7e1e5591932e7d24dcc157fcd07 /lib/lib.nix
parent3578918af2e77de4c0a9290fb80721a7e08e43e3 (diff)
tree-wide: document most things
Diffstat (limited to 'lib/lib.nix')
-rw-r--r--lib/lib.nix76
1 files changed, 10 insertions, 66 deletions
diff --git a/lib/lib.nix b/lib/lib.nix
index 1dea9be..54d6712 100644
--- a/lib/lib.nix
+++ b/lib/lib.nix
@@ -1,76 +1,20 @@
{
lib,
- self,
inputs,
+ self,
}:
let
- # function -> function -> { } -> { }
- # wrap the `args` applied to `builder` with the result of `apply`
- # applied to those `args`
- wrapBuilderWith =
- apply: builder: args:
- builder (apply args);
-
- # string -> function -> { } -> { }
- # wrap the `args` for `builder` of type `type` with nice defaults
- wrapBuilder =
- type:
- wrapBuilderWith (
- {
- modules ? [ ],
- specialArgs ? { },
- ...
- }@args:
- args
- // {
- modules = modules ++ lib.attrValues (self."${type}Modules" or { });
-
- specialArgs = specialArgs // {
- inherit inputs;
- };
- }
- );
-
- # function -> { } -> { }
- # wrap the `args` to the nixos `builder` function with nice defaults
- wrapNixOS = builder: args: wrapBuilder "nixos" builder args;
- # function -> { } -> { }
- # wrap the `args` to the darwin `builder` function with nice defaults
- wrapDarwin = builder: args: wrapBuilder "darwin" builder args;
-
- # function -> { } -> { }
- # wrap the `args` to the homeManager `builder` function with nice defaults
- wrapUser =
- builder: args:
- wrapBuilderWith (
- {
- modules ? [ ],
- extraSpecialArgs ? { },
- ...
- }@args:
- args
- // {
- modules = modules ++ lib.attrValues (self.homeManagerModules or { });
-
- extraSpecialArgs = extraSpecialArgs // {
- inherit inputs;
- };
- }
- ) builder args;
+ builders = import ./builders.nix { inherit lib inputs self; };
in
{
- # { } -> { }
- # apply nice defaults to the `args` of `nixosSystem`
- nixosSystem = wrapNixOS inputs.nixpkgs.lib.nixosSystem;
- # { } -> { }
- # apply nice defaults to the `args` of (stable) `nixosSystem`
- nixosSystemStable = wrapNixOS inputs.nixpkgs-stable.lib.nixosSystem;
- # { } -> { }
- # apply nice defaults to the `args` of `darwinSystem`
- darwinSystem = wrapDarwin inputs.nix-darwin.lib.darwinSystem;
- # { } -> { }
- # apply nice defaults to the `args` of `homeManagerConfiguration`
- homeManagerConfiguration = wrapUser inputs.home-manager.lib.homeManagerConfiguration;
+ inherit builders;
+
+ inherit (builders)
+ nixosSystem
+ nixosSystemStable
+ darwinSystem
+ homeManagerConfiguration
+ ;
nginx = import ./nginx.nix lib;
}