{ self, nixpkgs-unstable, ... } @ inputs: let inherit (nixpkgs-unstable.lib) forEach; mkTree = inputs.tree-input.tree; metaTree = mkTree ((import ../treeConfig.nix {}) // {inherit inputs;}); tree = metaTree.impure; patchedInputs = inputs // { # set these to the correct versions from inputs nixpkgs = inputs.nixpkgs-unstable; home-manager = inputs.home-manager-unstable; }; defaultSpecialArgs = { inherit self; tree = metaTree.impure; pureTree = metaTree.pure; inputs = patchedInputs; }; defaultModules = [ # NO_INLINE tree.profiles.base inputs.home-manager-unstable.nixosModules.home-manager inputs.gitlab_artifacts_sync.nixosModule inputs.nur.nixosModules.nur tree.modules.nixos.rclone-serve tree.modules.nixos.rclone-sync tree.modules.nixos.secrets ]; nixosUnstableSystem = nixpkgs-unstable.lib.nixosSystem; in { tablet = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./tablet/tablet.nix ./tablet/hardware.nix]; }; lappy-t495 = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./lappy-t495/lappy-t495.nix ./lappy-t495/hardware.nix]; }; hetzner-vm = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./hetzner-vm/hetzner-vm.nix]; }; vault = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./vault/vault.nix]; }; buildbox = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./buildbox/buildbox.nix]; }; # nix build .#nixosConfigurations.nixos-live-x86_64.config.system.build.isoImage nixos-live-x86_64 = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [./nixos-live/nixos-live.nix]; }; nixos-live-x86_64-laptops = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./nixos-live/nixos-live.nix ({...}: { system.extraDependencies = forEach ["lappy-t495" "tablet"] (system: self.nixosConfigurations.${system}.config.system.build.toplevel); }) ]; }; nixos-live-x86_64-servers = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./nixos-live/nixos-live.nix ({...}: { system.extraDependencies = forEach ["vault" "hetzner-vm"] (system: self.nixosConfigurations.${system}.config.system.build.toplevel); }) ]; }; nixos-live-x86_64-all = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "x86_64-linux"; modules = defaultModules ++ [ ./nixos-live/nixos-live.nix ({...}: { system.extraDependencies = forEach ["lappy-t495" "tablet" "vault" "hetzner-vm"] (system: self.nixosConfigurations.${system}.config.system.build.toplevel); }) ]; }; # nix --no-sandbox build .#nixosConfigurations.raspberry.config.system.build.sdImage raspberry = nixosUnstableSystem { specialArgs = defaultSpecialArgs; system = "aarch64-linux"; modules = defaultModules ++ [./raspberry/raspberry.nix]; }; }