about summary refs log tree commit diff
path: root/darwinConfigurations/default.nix
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-12-17 16:39:09 +0300
committerAzat Bahawi <azat@bahawi.net>2022-12-17 16:39:09 +0300
commit8f137c28230623259a964484adcf31fe00756594 (patch)
tree82bce6a13fda125087cf6d9dc80aa91d9230d6c4 /darwinConfigurations/default.nix
parent2022-11-20 (diff)
2022-12-17
Diffstat (limited to '')
-rw-r--r--darwinConfigurations/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/darwinConfigurations/default.nix b/darwinConfigurations/default.nix
new file mode 100644
index 0000000..612c8b0
--- /dev/null
+++ b/darwinConfigurations/default.nix
@@ -0,0 +1,35 @@
+{
+  inputs,
+  lib,
+}:
+with lib; let
+  mkConfiguration = name: {
+    modules ? [],
+    configuration ? ./${name},
+    this ? my.configurations.${name},
+    extraSpecialArgs ? {
+      localUsername = my.username;
+      localHostname = this.hostname;
+    },
+  }:
+    nameValuePair name (inputs.darwin.lib.darwinSystem {
+      inherit (this) system;
+      modules =
+        modules
+        ++ attrValues inputs.self.modules
+        ++ attrValues inputs.self.darwinModules
+        ++ optional (configuration != null) (import configuration);
+      specialArgs =
+        {
+          inherit inputs lib this;
+        }
+        // extraSpecialArgs;
+    });
+in
+  mapAttrs' mkConfiguration {
+    mairon.extraSpecialArgs = {
+      # These values are managed by my employer.
+      localUsername = "username";
+      localHostname = "hostname";
+    };
+  }

Consider giving Nix/NixOS a try! <3