Regenerated
This commit is contained in:
+28
-10
@@ -332,20 +332,18 @@ in
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Modules directory en switches
|
||||
modulesPath = ./generated/parked;
|
||||
importedModules = inputs.import-tree modulesPath;
|
||||
moduleSwitches = import ./assets/system/modules.conf;
|
||||
|
||||
# Alleen ingeschakelde modules
|
||||
enabledModules =
|
||||
lib.filterAttrs (name: _: moduleSwitches.${name} or false)
|
||||
importedModules.imports;
|
||||
|
||||
moduleList = builtins.attrValues enabledModules;
|
||||
|
||||
# Functie: haal homeManagerExtraUserFragment en forceer het tot veilige attrset
|
||||
safeFragment = module:
|
||||
# Functie om fragment veilig te evalueren en debug info te verzamelen
|
||||
debugFragment = module:
|
||||
let
|
||||
frag =
|
||||
if builtins.hasAttr "homeManagerExtraUserFragment" module
|
||||
@@ -353,15 +351,32 @@ let
|
||||
else {};
|
||||
evaluated =
|
||||
if builtins.isFunction frag then frag {} else frag;
|
||||
|
||||
isAttrs = builtins.isAttrs evaluated;
|
||||
isList = builtins.isList evaluated;
|
||||
isThunk = builtins.isFunction frag;
|
||||
in
|
||||
if builtins.isAttrs evaluated then evaluated
|
||||
else {};
|
||||
{
|
||||
fragment = if isAttrs then evaluated else {};
|
||||
debug = {
|
||||
name = if builtins.hasAttr "name" module then module.name else "unknown";
|
||||
isAttrs = isAttrs;
|
||||
isList = isList;
|
||||
isThunk = isThunk;
|
||||
};
|
||||
};
|
||||
|
||||
# Alle fragments per module
|
||||
allFragments = map safeFragment moduleList;
|
||||
# Alle fragments met debug info
|
||||
fragmentsWithDebug = map debugFragment moduleList;
|
||||
|
||||
# Merge alles per gebruiker
|
||||
mergedForUser = lib.foldl' lib.mkMerge {} allFragments;
|
||||
# Lijst van problematische modules
|
||||
problematicModules = builtins.filter
|
||||
(x: !(x.debug.isAttrs))
|
||||
fragmentsWithDebug;
|
||||
|
||||
# Merge alleen veilige fragments
|
||||
safeFragments = map (x: x.fragment) fragmentsWithDebug;
|
||||
mergedForUser = lib.foldl' lib.mkMerge {} safeFragments;
|
||||
|
||||
in
|
||||
{
|
||||
@@ -372,6 +387,9 @@ in
|
||||
home-manager.users = {
|
||||
"${username}" = mergedForUser;
|
||||
};
|
||||
|
||||
# Extra debug output, alleen zichtbaar als je `nix eval` gebruikt
|
||||
debug.problematicModules = problematicModules;
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user