summaryrefslogtreecommitdiff
path: root/lib/lib.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-05-24 23:17:20 -0400
committerseth <[email protected]>2024-05-24 21:36:05 -0600
commitf031c6e452ad883424d65227a558bc4155f6039e (patch)
tree1538c9446497c2c29e3264a5d7699514a5757c63 /lib/lib.nix
parentf4bf843db8765fda3a4629d9846c2edc458712eb (diff)
document lib
Diffstat (limited to 'lib/lib.nix')
-rw-r--r--lib/lib.nix50
1 files changed, 36 insertions, 14 deletions
diff --git a/lib/lib.nix b/lib/lib.nix
index 5b7ee7d..aedb67a 100644
--- a/lib/lib.nix
+++ b/lib/lib.nix
@@ -4,8 +4,13 @@
inputs,
...
}: 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 ? [],
@@ -21,26 +26,43 @@
specialArgs = specialArgs // {inherit inputs;};
});
- wrapNixOS = wrapBuilder "nixos";
- wrapDarwin = wrapBuilder "darwin";
+ # 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;
- wrapUser = wrapBuilderWith ({
- modules ? [],
- extraSpecialArgs ? {},
- ...
- } @ args:
- args
- // {
- modules =
- modules
- ++ lib.attrValues (self.homeManagerModules or {});
+ # 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;};
- });
+ extraSpecialArgs = extraSpecialArgs // {inherit inputs;};
+ })
+ builder
+ args;
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;
nginx = import ./nginx.nix lib;