48 lines
1.0 KiB
Nix
48 lines
1.0 KiB
Nix
{ lib, config, inputs, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
|
|
modulesPath = ./generated/modules;
|
|
|
|
imported = inputs.import-tree modulesPath;
|
|
|
|
moduleSwitches = import ../../../assets/system/conf/modules.conf;
|
|
|
|
# imported.imports is a LIST → filter it as a list
|
|
enabledModules =
|
|
builtins.filter (m:
|
|
let
|
|
name =
|
|
if builtins.hasAttr "__file" m
|
|
then builtins.baseNameOf m.__file
|
|
else "unknown";
|
|
in
|
|
moduleSwitches.${name} or false
|
|
) imported.imports;
|
|
|
|
# evaluate modules
|
|
evaluatedModules =
|
|
map (m:
|
|
if builtins.isFunction m
|
|
then m { inherit lib config; }
|
|
else m
|
|
) enabledModules;
|
|
|
|
in
|
|
{
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
home-manager.users =
|
|
lib.mkMerge evaluatedModules;
|
|
|
|
# debug
|
|
environment.variables.LOADED_MODULES =
|
|
builtins.concatStringsSep "," (map (m:
|
|
if builtins.hasAttr "__file" m
|
|
then builtins.baseNameOf m.__file
|
|
else "unknown"
|
|
) enabledModules);
|
|
}
|