diff options
Diffstat (limited to 'default.nix')
| -rw-r--r-- | default.nix | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/default.nix b/default.nix index fbf95e4..235d4e5 100644 --- a/default.nix +++ b/default.nix @@ -1,11 +1,14 @@ let lock = builtins.readFile ./flake.lock |> builtins.fromJSON; - defaultNixpkgs = builtins.fetchGit { - url = "https://github.com/NixOS/nixpkgs"; - shallow = true; - inherit (lock.nodes.nixpkgs.locked) rev; - inherit (lock.nodes.nixpkgs.original) ref; + defaultNixpkgs = builtins.fetchTarball { + inherit (lock.nodes.nixpkgs.locked) url; + sha256 = lock.nodes.nixpkgs.locked.narHash; + }; + + disko = builtins.fetchTarball { + url = "https://github.com/nix-community/disko/archibe/${lock.nodes.disko.locked.rev}tar.gz"; + sha256 = lock.nodes.disko.locked.narHash; }; in { @@ -22,6 +25,8 @@ let packagesFromDirectoryRecursive ; + importDir = import lib/importDir.nix { inherit lib; }; + overlay = final: _: let @@ -32,6 +37,7 @@ let in { inherit depotPackages; + depot = depotPackages; }; newPkgs = import defaultNixpkgs { @@ -43,5 +49,38 @@ let overlays = [ overlay ]; }; + nixosModules = importDir ./modules (builtins.mapAttrs (_: { path, ... }: path)); + + machines = importDir ./machines ( + entries: + let + defaultModule = { config, ... }: { + nixpkgs.overlays = [ overlay ]; + system.stateVersion = lib.mkDefault config.system.nixos.release; + }; + + buildNixOS = + hostName: entry: + import (pkgs.path + "/nixos/lib/eval-config.nix") { + modules = [ + defaultModule + entry.path + nixosModules.xnet + nixosModules.disk + nixosModules.desktop + nixosModules.network + nixosModules.sshd + nixosModules.users + ("${disko}/module.nix") + ]; + }; + in + builtins.mapAttrs buildNixOS entries + ); + in -newPkgs.depotPackages +{ + pkgs = newPkgs; + inherit (newPkgs) depotPackages; + inherit machines; +} |
