Move all flakes into modules/ and sep't, create deploy script for a1d2

Change-Id: Ie4d50fb8f16da193195beb139922a366b72b0b0a
diff --git a/modules/a1d2/default.nix b/modules/a1d2/default.nix
new file mode 100644
index 0000000..946c02a
--- /dev/null
+++ b/modules/a1d2/default.nix
@@ -0,0 +1,75 @@
+{ inputs, system, pkgs, drive_paths, ... }:
+let
+  inherit (inputs) self home-manager deploy-rs nixpkgs;
+  config = (self.nixosConfigurations.clicks.extendModules { modules = [ ./hardware-configuration.nix ]; });
+  deploy = {
+    sudo = "doas -u";
+    profiles = {
+      system = {
+        user = "root";
+        path = deploy-rs.lib.x86_64-linux.activate.nixos config;
+      };
+    } // (let
+      mkServiceConfig = service: {
+        user = service;
+
+        profilePath = "/nix/var/nix/profiles/per-user/${service}/home-manager";
+        path = deploy-rs.lib.x86_64-linux.activate.home-manager
+          (home-manager.lib.homeManagerConfiguration {
+            inherit pkgs;
+            modules = [
+              {
+                home.homeDirectory = "/services/${service}";
+                home.username = service;
+                home.stateVersion = "22.11";
+                programs.home-manager.enable = true;
+              }
+              "${../../services}/${service}"
+            ];
+            extraSpecialArgs = {
+              inherit (inputs) nixpkgs-clicksforms;
+              inherit system drive_paths;
+            };
+          });
+      };
+    in nixpkgs.lib.pipe ../../services [
+      builtins.readDir
+      (nixpkgs.lib.filterAttrs (_name: value: value == "directory"))
+      builtins.attrNames
+      (map (name: {
+        inherit name;
+        value = mkServiceConfig name;
+      }))
+      builtins.listToAttrs
+    ]) // (let
+      mkBlankConfig = username: {
+        user = username;
+
+        profilePath = "/nix/var/nix/profiles/per-user/${username}/home-manager";
+        path = deploy-rs.lib.x86_64-linux.activate.home-manager
+          (home-manager.lib.homeManagerConfiguration {
+            inherit pkgs;
+            modules = [
+              {
+                home.username = username;
+                home.stateVersion = "22.11";
+                programs.home-manager.enable = true;
+              }
+              "${../../homes}/${username}"
+            ];
+          });
+      };
+    in nixpkgs.lib.pipe ../../homes [
+      builtins.readDir
+      (nixpkgs.lib.filterAttrs (_name: value: value == "directory"))
+      builtins.attrNames
+      (map (name: {
+        inherit name;
+        value = mkBlankConfig name;
+      }))
+      builtins.listToAttrs
+    ]);
+    hostname = "a1d2";
+    profilesOrder = [ "system" ];
+  };
+in { inherit deploy config; }