diff options
-rw-r--r-- | lib/default.nix | 17 | ||||
-rw-r--r-- | machines/dnyarri.nix | 15 | ||||
-rw-r--r-- | machines/mmrnmhrm.nix | 14 |
3 files changed, 21 insertions, 25 deletions
diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 00000000..95f4f39f --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,17 @@ +with import <nixpkgs> {}; + +with pkgs.lib; + +{ + generateKConf = exprs: 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 "generated.kconf" (mkConf exprs); +} diff --git a/machines/dnyarri.nix b/machines/dnyarri.nix index 3a3801a2..0c9f3bac 100644 --- a/machines/dnyarri.nix +++ b/machines/dnyarri.nix @@ -1,6 +1,7 @@ {config, pkgs, ...}: with pkgs.lib; +with import ../lib; { require = singleton ../common.nix; @@ -43,19 +44,7 @@ with pkgs.lib; src = pkgs.kernelSourceAszlig.src; configfile = pkgs.substituteAll { name = "aszlig-with-firmware.kconf"; - - # 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)); + src = generateKConf (import ./dnyarri-kconf.nix); builtin_firmware = pkgs.stdenv.mkDerivation { name = "builtin-firmware"; diff --git a/machines/mmrnmhrm.nix b/machines/mmrnmhrm.nix index ad875fd3..259d7c98 100644 --- a/machines/mmrnmhrm.nix +++ b/machines/mmrnmhrm.nix @@ -1,6 +1,7 @@ {config, pkgs, ...}: with pkgs.lib; +with import ../lib; { require = singleton ../common.nix; @@ -10,18 +11,7 @@ with pkgs.lib; version = pkgs.kernelSourceAszlig.version; src = pkgs.kernelSourceAszlig.src; - 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)); - + configfile = generateKConf (import ./mmrnmhrm-kconf.nix); allowImportFromDerivation = true; }; in rec { |