From 7e62e31f9f2bba0864ee8dd05b490c17387f5322 Mon Sep 17 00:00:00 2001 From: aszlig Date: Thu, 13 Dec 2012 22:18:16 +0100 Subject: mmrnmhrm: Add kernel configuration as an attrset. So, this is the first step towards enhancing manual kernel configuration. Of course. this still looks a bit ugly because I personally don't like all-uppercase variable names for the kernel config and it still needs to have a few more expressions to properly handle value types (y/n/m, int, hex, string). Signed-off-by: aszlig --- machines/mmrnmhrm.nix | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'machines/mmrnmhrm.nix') 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; -- cgit 1.4.1