Regenerated
This commit is contained in:
+24
-19
@@ -380,32 +380,36 @@ let
|
||||
|
||||
# STEP 1: evaluate all modules
|
||||
evaluatedModules =
|
||||
map (m: if builtins.isFunction m then m { inherit lib config; } else m) imported.imports;
|
||||
map (m: if builtins.isFunction m then m { inherit lib config; } else m)
|
||||
imported.imports;
|
||||
|
||||
# STEP 2: attach names safely
|
||||
modulesWithNames =
|
||||
map (m: {
|
||||
name = if m ? _file then builtins.replaceSuffix ".nix" "" (builtins.baseNameOf m._file) else "unknown";
|
||||
name =
|
||||
if m ? _file
|
||||
then builtins.replaceSuffix ".nix" "" (builtins.baseNameOf m._file)
|
||||
else "unknown";
|
||||
value = m;
|
||||
}) evaluatedModules;
|
||||
|
||||
# STEP 3: filter enabled modules
|
||||
enabledModules = builtins.filter (m: moduleSwitches.${m.name} or false) modulesWithNames;
|
||||
enabledModules =
|
||||
builtins.filter (m: moduleSwitches.${m.name} or false) modulesWithNames;
|
||||
|
||||
# STEP 4: build debug string
|
||||
debugContents = builtins.concatStringsSep "\n"
|
||||
(map (m: "${m.name} (${builtins.toString (builtins.length (builtins.attrNames m.value))} attrs)") enabledModules);
|
||||
debugContents =
|
||||
builtins.concatStringsSep "\n"
|
||||
(map (m:
|
||||
"${m.name} (${builtins.toString (builtins.length (builtins.attrNames m.value))} attrs)"
|
||||
) enabledModules);
|
||||
|
||||
# STEP 5: trace to screen during evaluation
|
||||
_ = builtins.trace ("==== Enabled modules (" + toString (builtins.length enabledModules) + ") ====\n" + debugContents) true;
|
||||
|
||||
# STEP 6: host-side debug file (runs on host, not VM)
|
||||
hostDebugFile = pkgs.runCommand "traveldroid-modules-debug-host" {
|
||||
buildInputs = [ pkgs.coreutils ];
|
||||
} ''
|
||||
echo "${debugContents}" > /tmp/traveldroid-modules-debug.txt
|
||||
# STEP 5: create REAL debug file in store
|
||||
hostDebugFile = pkgs.runCommand "traveldroid-modules-debug-host" {} ''
|
||||
mkdir -p $out
|
||||
touch $out/dummy
|
||||
cat > $out/traveldroid-modules-debug.txt <<EOF
|
||||
${debugContents}
|
||||
EOF
|
||||
'';
|
||||
|
||||
in
|
||||
@@ -418,14 +422,15 @@ in
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Merge enabled modules for home-manager
|
||||
home-manager.users = lib.mkMerge (map (m: m.value) enabledModules);
|
||||
# Merge enabled modules
|
||||
home-manager.users =
|
||||
lib.mkMerge (map (m: m.value) enabledModules);
|
||||
|
||||
# Write debug file inside VM as well
|
||||
# Debug file inside VM (optional fallback)
|
||||
environment.etc."traveldroid-modules-debug.txt".text = debugContents;
|
||||
|
||||
# Force Nix to build host-side debug file
|
||||
system.build.hostDebugDummy = hostDebugFile;
|
||||
# Expose derivation so post-build hook can detect it
|
||||
system.build.traveldroidDebug = hostDebugFile;
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user