39 lines
1.3 KiB
Nix
39 lines
1.3 KiB
Nix
{ context, core, ... }:
|
|
let
|
|
inherit(core) list set string type;
|
|
debug = core.debug (context ++ [ "collect" ]);
|
|
|
|
extendPath
|
|
= path:
|
|
name:
|
|
let
|
|
path'
|
|
= if path != null
|
|
then
|
|
"${path}."
|
|
else
|
|
"";
|
|
this
|
|
= string.match
|
|
"[A-Za-z_][0-9A-Za-z_'-]*"
|
|
name;
|
|
name'
|
|
= string.replace'
|
|
{
|
|
"\"" = ''\"'';
|
|
"\n" = ''\n'';
|
|
"\r" = ''\r'';
|
|
"\t" = ''\t'';
|
|
}
|
|
name;
|
|
in
|
|
if this == [] then "${path'}${name}"
|
|
else "${path'}\"${name'}\"";
|
|
|
|
|
|
in
|
|
{
|
|
__functor = self: collect;
|
|
configurations = import ./configurations.nix { inherit core extendPath; context = context ++ [ "collect" "configurations" ]; };
|
|
options = import ./options.nix { inherit core extendPath; context = context ++ [ "collect" "options" ]; };
|
|
} |