mirror of
https://github.com/oqyude/nixos.git
synced 2026-10-07 20:47:14 +03:00
76 lines
1.9 KiB
Nix
76 lines
1.9 KiB
Nix
{ inputs, ... }@flakeContext:
|
|
let
|
|
lib = inputs.nixpkgs.lib;
|
|
mkSystem = import ../lib/mkSystem.nix flakeContext;
|
|
xlibLib = import ../lib/xlib { inherit lib; };
|
|
|
|
# One record per host. The attribute name IS the hostname, so it is written
|
|
# exactly once; `hostname` is only needed where the attribute name is not
|
|
# the real hostname (the `default` entry).
|
|
#
|
|
# device device type, must be a key of `devices` in lib/xlib/device.nix
|
|
# modules module body for this host
|
|
hosts = {
|
|
default = {
|
|
hostname = "nixos";
|
|
device = "minimal";
|
|
modules = [ ./any.nix ];
|
|
};
|
|
atoridu = {
|
|
device = "primary";
|
|
modules = [ ./mini-pc.nix ];
|
|
};
|
|
rydiwo = {
|
|
device = "secondary";
|
|
modules = [ ./mini-laptop.nix ];
|
|
};
|
|
otreca = {
|
|
device = "vds";
|
|
modules = [ ./vds.nix ];
|
|
};
|
|
sapphira = {
|
|
device = "server";
|
|
modules = [ ./server.nix ];
|
|
};
|
|
wsl = {
|
|
device = "wsl";
|
|
modules = [ ./wsl.nix ];
|
|
};
|
|
};
|
|
|
|
mkHost =
|
|
name:
|
|
{
|
|
device,
|
|
modules,
|
|
hostname ? name,
|
|
...
|
|
}:
|
|
let
|
|
xlib = xlibLib.mkXlib {
|
|
inherit hostname;
|
|
type = device;
|
|
};
|
|
in
|
|
{
|
|
inherit xlib;
|
|
system = mkSystem { inherit xlib modules; };
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations = lib.mapAttrs' (
|
|
name: spec: lib.nameValuePair name (mkHost name spec).system
|
|
) hosts;
|
|
|
|
# Per-host xlib values, for code that lives outside the module system
|
|
# (deploy, overlays, pkgs).
|
|
xlib = lib.mapAttrs' (name: spec: lib.nameValuePair name (mkHost name spec).xlib) hosts;
|
|
|
|
nixOnDroidConfigurations = {
|
|
epral = import ./mobile.nix flakeContext; # epral (Android device via nix-on-droid)
|
|
# Alias so a plain `nix-on-droid switch` from a local clone
|
|
# (~/.config/nix-on-droid) picks up the device config without `#epral`.
|
|
default = import ./mobile.nix flakeContext;
|
|
};
|
|
}
|