43 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  rootPath,
							 | 
						||
| 
								 | 
							
								  outputs,
							 | 
						||
| 
								 | 
							
								}: {inputs, ...}: let
							 | 
						||
| 
								 | 
							
								  defaultNixosModule = import (rootPath + "/nixos/modules");
							 | 
						||
| 
								 | 
							
								  inherit (inputs.nixpkgs) lib;
							 | 
						||
| 
								 | 
							
								in {
							 | 
						||
| 
								 | 
							
								  flake = {
							 | 
						||
| 
								 | 
							
								    nixosModules.default = defaultNixosModule;
							 | 
						||
| 
								 | 
							
								    nixosConfigurations = let
							 | 
						||
| 
								 | 
							
								      nixosConfigDir = rootPath + "/nixos/configurations";
							 | 
						||
| 
								 | 
							
								      makeNixConfiguration = hostName:
							 | 
						||
| 
								 | 
							
								        lib.nixosSystem {
							 | 
						||
| 
								 | 
							
								          modules =
							 | 
						||
| 
								 | 
							
								            [defaultNixosModule]
							 | 
						||
| 
								 | 
							
								            ++ [
							 | 
						||
| 
								 | 
							
								              (
							 | 
						||
| 
								 | 
							
								                let
							 | 
						||
| 
								 | 
							
								                  dirPath = nixosConfigDir + "/${hostName}";
							 | 
						||
| 
								 | 
							
								                  filePath = nixosConfigDir + "/${hostName}.nix";
							 | 
						||
| 
								 | 
							
								                in
							 | 
						||
| 
								 | 
							
								                  if builtins.pathExists dirPath
							 | 
						||
| 
								 | 
							
								                  then dirPath
							 | 
						||
| 
								 | 
							
								                  else filePath
							 | 
						||
| 
								 | 
							
								              )
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								          specialArgs = {
							 | 
						||
| 
								 | 
							
								            inherit inputs outputs rootPath;
							 | 
						||
| 
								 | 
							
								          };
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    in
							 | 
						||
| 
								 | 
							
								      nixosConfigDir
							 | 
						||
| 
								 | 
							
								      |> builtins.readDir
							 | 
						||
| 
								 | 
							
								      |> builtins.attrNames
							 | 
						||
| 
								 | 
							
								      |> map (f: lib.removeSuffix ".nix" f)
							 | 
						||
| 
								 | 
							
								      |> map (name: {
							 | 
						||
| 
								 | 
							
								        inherit name;
							 | 
						||
| 
								 | 
							
								        value = makeNixConfiguration name;
							 | 
						||
| 
								 | 
							
								      })
							 | 
						||
| 
								 | 
							
								      |> builtins.listToAttrs;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 |