diff options
| -rw-r--r-- | flake.nix | 84 | ||||
| -rw-r--r-- | lib/README.md | 5 | ||||
| -rw-r--r-- | lib/builders.nix | 66 | ||||
| -rw-r--r-- | lib/default.nix | 18 | ||||
| -rw-r--r-- | lib/nginx.nix | 3 |
5 files changed, 60 insertions, 116 deletions
@@ -7,15 +7,17 @@ }; outputs = - { self, nixpkgs, ... }@inputs: + { + self, + nixpkgs, + nixpkgs-stable, + nix-darwin, + home-manager, + ... + }@inputs: + let inherit (nixpkgs) lib; - inherit (self.lib.builders) - darwinSystem - homeManagerConfiguration - nixosSystem - mkModule - ; systems = [ "x86_64-linux" @@ -26,7 +28,13 @@ forAllSystems = lib.genAttrs systems; nixpkgsFor = nixpkgs.legacyPackages; + + mkModule = type: name: file: { + _file = "${self.outPath}#${type}.${name}"; + imports = [ file ]; + }; in + { apps = forAllSystems ( system: @@ -157,53 +165,61 @@ } ); - lib = import ./lib { inherit lib inputs self; }; + lib = import ./lib { inherit lib; }; formatter = forAllSystems (system: nixpkgsFor.${system}.nixfmt-rfc-style); - darwinModules = { - default = mkModule { - name = "default"; - type = "darwin"; - imports = [ ./modules/darwin ]; - }; + darwinModules = lib.mapAttrs (mkModule "darwin") { + default = ./modules/darwin; }; - nixosModules = { - default = mkModule { - name = "default"; - type = "nixos"; - imports = [ ./modules/nixos ]; - }; + nixosModules = lib.mapAttrs (mkModule "darwin") { + default = ./modules/nixos; }; - darwinConfigurations = lib.mapAttrs (lib.const darwinSystem) { + darwinConfigurations = lib.mapAttrs (lib.const nix-darwin.lib.darwinSystem) { caroline = { modules = [ ./systems/caroline ]; + specialArgs = { + inherit inputs; + }; }; }; - homeConfigurations = lib.mapAttrs (lib.const homeManagerConfiguration) { + homeConfigurations = lib.mapAttrs (lib.const home-manager.lib.homeManagerConfiguration) { seth = { modules = [ ./users/seth/home.nix ]; pkgs = nixpkgsFor.x86_64-linux; + extraSpecialArgs = { + inherit inputs; + }; }; }; - nixosConfigurations = lib.mapAttrs (lib.const nixosSystem) { - glados = { - modules = [ ./systems/glados ]; - }; - - glados-wsl = { - modules = [ ./systems/glados-wsl ]; - }; + nixosConfigurations = + lib.mapAttrs (lib.const nixpkgs.lib.nixosSystem) { + glados = { + modules = [ ./systems/glados ]; + specialArgs = { + inherit inputs; + }; + }; - atlas = { - nixpkgs = inputs.nixpkgs-stable; - modules = [ ./systems/atlas ]; + glados-wsl = { + modules = [ ./systems/glados-wsl ]; + specialArgs = { + inherit inputs; + }; + }; + } + // { + atlas = nixpkgs-stable.lib.nixosSystem { + modules = [ ./systems/atlas ]; + specialArgs = { + inherit inputs; + }; + }; }; - }; legacyPackages.x86_64-linux = let diff --git a/lib/README.md b/lib/README.md index ad2d3ae..97814c5 100644 --- a/lib/README.md +++ b/lib/README.md @@ -1,10 +1,5 @@ # ./lib/ -## builders.nix - -Light wrappers around functions like `nixosSystem` and -`homeManagerConfiguration` - ## nginx.nix Small helpers to avoid boilerplate in the `services.nginx` module diff --git a/lib/builders.nix b/lib/builders.nix deleted file mode 100644 index 3cedb59..0000000 --- a/lib/builders.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - lib, - inputs, - self, - ... -}: -{ - nixosSystem = - { - nixpkgs ? inputs.nixpkgs, - specialArgs ? { }, - ... - }@args: - nixpkgs.lib.nixosSystem ( - lib.removeAttrs args [ "nixpkgs" ] - // { - specialArgs = specialArgs // { - inherit inputs; - }; - } - ); - - darwinSystem = - { - nix-darwin ? inputs.nix-darwin or inputs.darwin, - specialArgs ? { }, - ... - }@args: - nix-darwin.lib.darwinSystem ( - lib.removeAttrs args [ "nix-darwin" ] - // { - specialArgs = specialArgs // { - inherit inputs; - }; - } - ); - - homeManagerConfiguration = - { - extraSpecialArgs ? { }, - ... - }@args: - inputs.home-manager.lib.homeManagerConfiguration ( - args - // { - extraSpecialArgs = extraSpecialArgs // { - inherit inputs; - }; - } - ); - - mkModule = - { - name, - type, - imports, - }@args: - { - _file = "${self.outPath}/flake.nix#${type}Modules.${name}"; - inherit imports; - } - // lib.removeAttrs args [ - "name" - "type" - ]; -} diff --git a/lib/default.nix b/lib/default.nix index 96d0a9f..8279f8f 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,11 +1,9 @@ -{ - lib, - inputs, - self, - ... -}: +{ lib }: -lib.mapAttrs (_: file: import file { inherit lib inputs self; }) { - builders = ./builders.nix; - nginx = ./nginx.nix; -} +lib.makeExtensible ( + final: + + lib.mapAttrs (lib.const (lib.flip import { inherit lib final; })) { + nginx = ./nginx.nix; + } +) diff --git a/lib/nginx.nix b/lib/nginx.nix index 80eb6ad..8b89071 100644 --- a/lib/nginx.nix +++ b/lib/nginx.nix @@ -1,4 +1,5 @@ -{ lib, ... }: +{ lib, final }: + { /** Create an NGINX virtualHost submodule proxying a local port |
