41 lines
1.1 KiB
Nix
41 lines
1.1 KiB
Nix
|
let
|
||
|
inherit (builtins) mapAttrs;
|
||
|
inherit (builtins) filter;
|
||
|
inherit (builtins) currentSystem;
|
||
|
|
||
|
# https://github.com/andir/npins?tab=readme-ov-file#using-the-nixpkgs-fetchers
|
||
|
src = import ./npins;
|
||
|
pkgs = import src.nixpkgs {};
|
||
|
sources = mapAttrs (k: v: v {inherit pkgs;}) src;
|
||
|
|
||
|
inherit (pkgs) lib;
|
||
|
inherit (lib.filesystem) listFilesRecursive;
|
||
|
inherit (lib.strings) hasSuffix;
|
||
|
|
||
|
mkSystem = system: hostname:
|
||
|
import (src.nixpkgs + "/nixos/lib/eval-config.nix") {
|
||
|
system = currentSystem;
|
||
|
specialArgs = {
|
||
|
inherit sources;
|
||
|
self = ./.;
|
||
|
};
|
||
|
modules =
|
||
|
[
|
||
|
# This is used to pre-emptively set the hostPlatform for nixpkgs.
|
||
|
# Also, we set the system hostname here.
|
||
|
{
|
||
|
networking.hostName = hostname;
|
||
|
nixpkgs.hostPlatform = system;
|
||
|
}
|
||
|
./hosts/common.nix
|
||
|
./hosts/${hostname}
|
||
|
]
|
||
|
++ ((listFilesRecursive ./modules)
|
||
|
|> filter (hasSuffix ".mod.nix"));
|
||
|
};
|
||
|
in {
|
||
|
temperance = mkSystem "x86_64-linux" "temperance";
|
||
|
hermit = mkSystem "x86_64-linux" "hermit";
|
||
|
tower = mkSystem "aarch64-linux" "tower";
|
||
|
}
|