summaryrefslogtreecommitdiff
path: root/lib/builders.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lib/builders.nix')
-rw-r--r--lib/builders.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/builders.nix b/lib/builders.nix
new file mode 100644
index 0000000..3cedb59
--- /dev/null
+++ b/lib/builders.nix
@@ -0,0 +1,66 @@
+{
+ 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"
+ ];
+}