about summary refs log tree commit diff
path: root/darwinConfigurations
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
parent2022-11-20 (diff)
2022-12-17
Diffstat (limited to 'darwinConfigurations')
-rw-r--r--darwinConfigurations/default.nix35
-rw-r--r--darwinConfigurations/mairon/default.nix22
2 files changed, 57 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";
+    };
+  }
diff --git a/darwinConfigurations/mairon/default.nix b/darwinConfigurations/mairon/default.nix
new file mode 100644
index 0000000..d574a08
--- /dev/null
+++ b/darwinConfigurations/mairon/default.nix
@@ -0,0 +1,22 @@
+{
+  config,
+  lib,
+  this,
+  ...
+}:
+with lib; {
+  nixfiles.modules.vscode.enable = true;
+
+  # TODO Make this per-directory/per-remote.
+  hm.programs.git = {
+    userName = mkForce "Firstname Lastname";
+    userEmail = mkForce "username@work.com";
+    signing.key = mkForce "@PGP_KEY@";
+    extraConfig."url \"git@gitlab.services.work.com:\"".insteadOf = "work:";
+  };
+
+  networking = {
+    computerName = mkForce this.hostname;
+    hostName = mkForce null;
+  };
+}

Consider giving Nix/NixOS a try! <3