about summary refs log tree commit diff
path: root/machines/mmrnmhrm.nix
diff options
context:
space:
mode:
Diffstat (limited to 'machines/mmrnmhrm.nix')
-rw-r--r--machines/mmrnmhrm.nix22
1 files changed, 15 insertions, 7 deletions
diff --git a/machines/mmrnmhrm.nix b/machines/mmrnmhrm.nix
index a765918e..2e986f55 100644
--- a/machines/mmrnmhrm.nix
+++ b/machines/mmrnmhrm.nix
@@ -1,4 +1,4 @@
-{config, pkgs, ...}:
+{ config, pkgs, ... }:
 
 with pkgs.lib;
 
@@ -9,12 +9,20 @@ with pkgs.lib;
     linuxAszlig = pkgs.linuxManualConfig {
       version = pkgs.kernelSourceAszlig.version;
       src = pkgs.kernelSourceAszlig.src;
-      configfile = pkgs.fetchurl {
-        name = "aszlig.kconf";
-        url = "file:///home/aszlig/linux/.config";
-        md5 = "0c632194689797846127b47fa135c516";
-      };
-      allowImportFromDerivation = true; # XXX
+
+      configfile = let
+        isNumber = c: elem c ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"];
+        mkValue = val:
+          if val == "" then "\"\""
+          else if val == "y" || val == "m" || val == "n" then val
+          else if all isNumber (stringToCharacters val) then val
+          else if substring 0 2 val == "0x" then val
+          else "\"${val}\"";
+        mkConfigLine = key: val: "${key}=${mkValue val}";
+        mkConf = cfg: concatStringsSep "\n" (mapAttrsToList mkConfigLine cfg);
+      in pkgs.writeText "aszlig.kconf" (mkConf (import ./mmrnmhrm-kconf.nix));
+
+      allowImportFromDerivation = true;
     };
   in rec {
     kernelPackages = pkgs.linuxPackagesFor linuxAszlig kernelPackages;