with import {}; 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); }