about summary refs log tree commit diff
path: root/machines/dnyarri.nix
diff options
context:
space:
mode:
Diffstat (limited to 'machines/dnyarri.nix')
-rw-r--r--machines/dnyarri.nix17
1 files changed, 12 insertions, 5 deletions
diff --git a/machines/dnyarri.nix b/machines/dnyarri.nix
index d2cfaf73..3a3801a2 100644
--- a/machines/dnyarri.nix
+++ b/machines/dnyarri.nix
@@ -44,11 +44,18 @@ with pkgs.lib;
       configfile = pkgs.substituteAll {
         name = "aszlig-with-firmware.kconf";
 
-        src = pkgs.fetchurl {
-          name = "aszlig.kconf";
-          url = "file:///home/aszlig/linux/.config";
-          md5 = "318762752f2831d26a315d040437f42a";
-        };
+        # XXX: in mmrnmhrm.nix as well, factor out!
+        src = 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 ./dnyarri-kconf.nix));
 
         builtin_firmware = pkgs.stdenv.mkDerivation {
           name = "builtin-firmware";