inputs @ {self, ...}: let daniel = system: { home-manager.users.daniel = { imports = [./home/user.nix ./home/linux.nix]; }; }; hms = system: [ inputs.home-manager.nixosModules.home-manager (daniel system) ]; disko = args @ {scheme, ...}: [ inputs.disko.nixosModules.disko self.diskoConfigurations.${scheme} {_module.args = args;} ]; nixosSystem = system: modules: (inputs.nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs system;}; modules = [ inputs.sops-nix.nixosModules.sops ./nixos/common.nix ] ++ modules ++ hms system; }); in { # TODO: disko-fy rascal and beefcake? beefcake = nixosSystem "x86_64-linux" [ ./nixos/beefcake.nix inputs.api-lyte-dev.nixosModules.x86_64-linux.api-lyte-dev ]; rascal = nixosSystem "x86_64-linux" [./nixos/rascal.nix]; musicbox = nixosSystem "x86_64-linux" (disko { scheme = "unencrypted"; disks = ["/dev/sda"]; } ++ [./nixos/musicbox.nix]); thinker = nixosSystem "x86_64-linux" (disko { scheme = "thinker"; disks = ["/dev/nvme0n1"]; } ++ [./nixos/thinker.nix]); dragon = nixosSystem "x86_64-linux" (disko { scheme = "standard"; disks = ["/dev/nvme0n1"]; } ++ [./nixos/dragon.nix]); }