fmt(nix): add nix fmt, fmt and update flake.lock

This commit is contained in:
2025-07-07 02:38:04 +02:00
parent 3625aa9426
commit 4611ad87a8
6 changed files with 180 additions and 147 deletions

View File

@@ -1,70 +1,73 @@
{ lib, keys-h-file }:
let
double-match-to-nameval = dmatch: { name = builtins.elemAt dmatch 0; value = builtins.elemAt dmatch 1; };
double-match-to-nameval = dmatch: {
name = builtins.elemAt dmatch 0;
value = builtins.elemAt dmatch 1;
};
keys-enum = let
key-names = builtins.replaceStrings ["\n" " "] ["" ""] (
builtins.elemAt (
builtins.match
".*KEY_NAMES\\[][[:blank:]]*=[[:blank:]]*\\{([^}]*)}.*"
keys-h-file
) 0
);
keys-enum =
let
key-names = builtins.replaceStrings [ "\n" " " ] [ "" "" ] (
builtins.elemAt (builtins.match ".*KEY_NAMES\\[][[:blank:]]*=[[:blank:]]*\\{([^}]*)}.*" keys-h-file) 0
);
keys-2d-list = builtins.map
(builtins.match "\\[(.*)]=\"(.*)\"")
(builtins.filter
(s: builtins.isString s && s != "")
(builtins.split "," key-names)
);
keys-2d-list = builtins.map (builtins.match "\\[(.*)]=\"(.*)\"") (
builtins.filter (s: builtins.isString s && s != "") (builtins.split "," key-names)
);
in builtins.listToAttrs (
builtins.map
(k: k // { value = { __enum_key = k.value; }; })
(builtins.map double-match-to-nameval keys-2d-list)
in
builtins.listToAttrs (
builtins.map (
k:
k
// {
value = {
__enum_key = k.value;
};
}
) (builtins.map double-match-to-nameval keys-2d-list)
);
in {
inherit keys-enum;
make = let
name-val-to-attrs = (name: value: { inherit name value; } );
map-attrs = attrset: fn: lib.map fn
(lib.attrsets.mapAttrsToList name-val-to-attrs attrset);
in
{
inherit keys-enum;
make =
let
name-val-to-attrs = (name: value: { inherit name value; });
map-attrs = attrset: fn: lib.map fn (lib.attrsets.mapAttrsToList name-val-to-attrs attrset);
try-foldl' = op: nul: list:
if (builtins.length list) == 0 then ""
else builtins.foldl' op nul list;
concat-with = sepr: list: try-foldl'
(x: y: if x == null then y else x + sepr + y)
null
list;
try-foldl' =
op: nul: list:
if (builtins.length list) == 0 then "" else builtins.foldl' op nul list;
concat-with = sepr: list: try-foldl' (x: y: if x == null then y else x + sepr + y) null list;
ser-bool = bool: if bool then "true" else "false";
ser-str = str: "\"${builtins.replaceStrings ["\n" "\""] ["\\n" "\\\""] str}\"";
ser-kvs = { name, value }: if builtins.isList value then
concat-with "\n" (
builtins.map
(value: ser-kvs { inherit name value; })
value
)
else "${name} = ${
ser-bool = bool: if bool then "true" else "false";
ser-str = str: "\"${builtins.replaceStrings [ "\n" "\"" ] [ "\\n" "\\\"" ] str}\"";
ser-kvs =
{ name, value }:
if builtins.isList value then
concat-with "\n" (builtins.map (value: ser-kvs { inherit name value; }) value)
else
"${name} = ${
if builtins.isString value then
ser-str value
ser-str value
else if builtins.isInt value then
builtins.toString value
builtins.toString value
else if builtins.isBool value then
ser-bool value
ser-bool value
else if builtins.isAttrs value then
value.__enum_key
else builtins.throw "type not supported"
}";
value.__enum_key
else
builtins.throw "type not supported"
}";
ser-table = table': let
tname = table'.name;
table = table'.value;
ser-table =
table':
let
tname = table'.name;
table = table'.value;
in
"[${tname}]\n" + (
concat-with "\n" (map-attrs table ser-kvs)
);
in cfg: concat-with "\n\n" (map-attrs cfg ser-table);
"[${tname}]\n" + (concat-with "\n" (map-attrs table ser-kvs));
in
cfg: concat-with "\n\n" (map-attrs cfg ser-table);
}