diff options
| author | seth <[email protected]> | 2024-05-24 04:46:59 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2024-05-24 21:36:05 -0600 |
| commit | ef2b5ea9f2f9450eac7ac2a875a8f1c6599c1ed0 (patch) | |
| tree | 5d21686d2d34986c6fcdf23fcd8f3a3c176d53bd /lib | |
| parent | 5533072babca9fdefe45151ee834cdd14e1c679e (diff) | |
don't use flake module
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/default.nix | 19 | ||||
| -rw-r--r-- | lib/lib.nix | 47 |
2 files changed, 53 insertions, 13 deletions
diff --git a/lib/default.nix b/lib/default.nix index 92ae0f0..c2936aa 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,14 +1,7 @@ -{lib, ...}: let - fnsFrom = files: - builtins.listToAttrs ( - map (file: { - name = lib.removeSuffix ".nix" (baseNameOf file); - value = import file lib; - }) - files - ); -in { - flake.lib = fnsFrom [ - ./nginx.nix - ]; +{lib, ...} @ args: { + flake.lib = + (lib.extend (final: prev: { + my = import ./lib.nix args; + })) + .my; } 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; +} |
