summaryrefslogtreecommitdiff
path: root/lib/lib.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-05-24 04:46:59 -0400
committerseth <[email protected]>2024-05-24 21:36:05 -0600
commitef2b5ea9f2f9450eac7ac2a875a8f1c6599c1ed0 (patch)
tree5d21686d2d34986c6fcdf23fcd8f3a3c176d53bd /lib/lib.nix
parent5533072babca9fdefe45151ee834cdd14e1c679e (diff)
don't use flake module
Diffstat (limited to 'lib/lib.nix')
-rw-r--r--lib/lib.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/lib.nix b/lib/lib.nix
new file mode 100644
index 0000000..5b7ee7d
--- /dev/null
+++ b/lib/lib.nix
@@ -0,0 +1,47 @@
+{
+ lib,
+ self,
+ inputs,
+ ...
+}: let
+ wrapBuilderWith = apply: builder: args: builder (apply args);
+
+ wrapBuilder = type:
+ wrapBuilderWith ({
+ modules ? [],
+ specialArgs ? {},
+ ...
+ } @ args:
+ args
+ // {
+ modules =
+ modules
+ ++ lib.attrValues (self."${type}Modules" or {});
+
+ specialArgs = specialArgs // {inherit inputs;};
+ });
+
+ wrapNixOS = wrapBuilder "nixos";
+ wrapDarwin = wrapBuilder "darwin";
+
+ wrapUser = wrapBuilderWith ({
+ modules ? [],
+ extraSpecialArgs ? {},
+ ...
+ } @ args:
+ args
+ // {
+ modules =
+ modules
+ ++ lib.attrValues (self.homeManagerModules or {});
+
+ extraSpecialArgs = extraSpecialArgs // {inherit inputs;};
+ });
+in {
+ nixosSystem = wrapNixOS inputs.nixpkgs.lib.nixosSystem;
+ nixosSystemStable = wrapNixOS inputs.nixpkgs-stable.lib.nixosSystem;
+ darwinSystem = wrapDarwin inputs.nix-darwin.lib.darwinSystem;
+ homeManagerConfiguration = wrapUser inputs.home-manager.lib.homeManagerConfiguration;
+
+ nginx = import ./nginx.nix lib;
+}