summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix84
-rw-r--r--lib/README.md5
-rw-r--r--lib/builders.nix66
-rw-r--r--lib/default.nix18
-rw-r--r--lib/nginx.nix3
5 files changed, 60 insertions, 116 deletions
diff --git a/flake.nix b/flake.nix
index 9b5e326..03db398 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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