fn: Improve readability of fn.lst function arguments.
This commit is contained in:
parent
b6b22c2c22
commit
c1c5ff299e
4 changed files with 32 additions and 31 deletions
22
flake.nix
22
flake.nix
|
@ -35,25 +35,25 @@
|
|||
fn = import ./fn.nix { inherit lib; };
|
||||
pkgs = nixpkgs.legacyPackages."${system}";
|
||||
machineList = fn.lst {
|
||||
p = toString ./machines;
|
||||
t = "directory";
|
||||
b = false;
|
||||
path = toString ./machines;
|
||||
fileType = "directory";
|
||||
fullPath = false;
|
||||
};
|
||||
nixosSystemFor = machine: {
|
||||
name = machine;
|
||||
value =
|
||||
let
|
||||
configFiles = fn.lst {
|
||||
p = toString ./config;
|
||||
b = true;
|
||||
path = toString ./config;
|
||||
fullPath = true;
|
||||
};
|
||||
pkgsFiles = fn.lst {
|
||||
p = toString ./pkgs;
|
||||
b = true;
|
||||
path = toString ./pkgs;
|
||||
fullPath = true;
|
||||
};
|
||||
serviceFiles = fn.lst {
|
||||
p = toString ./services;
|
||||
b = true;
|
||||
path = toString ./services;
|
||||
fullPath = true;
|
||||
};
|
||||
machinePath = lib.concatStringsSep "/" [
|
||||
(toString ./.)
|
||||
|
@ -62,8 +62,8 @@
|
|||
];
|
||||
machineFiles = lib.filter (lib.strings.hasSuffix ".nix") (
|
||||
fn.lst {
|
||||
p = machinePath;
|
||||
b = true;
|
||||
path = machinePath;
|
||||
fullPath = true;
|
||||
}
|
||||
);
|
||||
in
|
||||
|
|
32
fn.nix
32
fn.nix
|
@ -32,31 +32,33 @@ rec {
|
|||
*/
|
||||
cwd = builtins.getEnv "PWD";
|
||||
|
||||
# lst (string PATH) (string FILETYPE) (bool RETURNFULLPATH)
|
||||
/**
|
||||
lst (string PATH) (string FILETYPE) (bool RETURNFULLPATH)
|
||||
*/
|
||||
lst =
|
||||
{
|
||||
p ? cwd,
|
||||
t ? "regular",
|
||||
b ? false,
|
||||
path ? cwd,
|
||||
fileType ? "regular",
|
||||
fullPath ? false,
|
||||
}:
|
||||
(lists.forEach (attrNames (filterAttrs (n: v: v == t) (readDir p))) (
|
||||
v: ((optionalString b "${p}/") + v)
|
||||
assert (builtins.isString path) || throw "Argument path needs to be a string.";
|
||||
(lists.forEach (attrNames (filterAttrs (n: v: v == fileType) (readDir path))) (
|
||||
v: ((optionalString fullPath "${path}/") + v)
|
||||
));
|
||||
lsf = p: (lst { inherit p; });
|
||||
lsf = path: (lst { inherit path; });
|
||||
lsd =
|
||||
p:
|
||||
path:
|
||||
(lst {
|
||||
inherit p;
|
||||
t = "directory";
|
||||
b = true;
|
||||
inherit path;
|
||||
fileType = "directory";
|
||||
fullPath = true;
|
||||
});
|
||||
lsfRec =
|
||||
p: b:
|
||||
path: fullPath:
|
||||
flatten (
|
||||
(map (np: lsfRec np b) (lsd p))
|
||||
(map (nextPath: lsfRec nextPath fullPath) (lsd path))
|
||||
++ (lst {
|
||||
inherit p;
|
||||
inherit b;
|
||||
inherit path fullPath;
|
||||
})
|
||||
);
|
||||
hasAttrs = aList: d: (map (a: (ifelse (isList a) (hasAttrByPath a d) (hasAttr a d))) aList);
|
||||
|
|
|
@ -2,15 +2,14 @@
|
|||
config,
|
||||
lib,
|
||||
fn,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.machine;
|
||||
pkgsets = fn.lst {
|
||||
p = toString ../pkgsets;
|
||||
b = true;
|
||||
path = toString ../pkgsets;
|
||||
fullPath = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
|
@ -9,8 +9,8 @@ with lib;
|
|||
let
|
||||
cfg = config.machine;
|
||||
desktopFiles = fn.lst {
|
||||
p = toString ./desktop;
|
||||
b = true;
|
||||
path = toString ./desktop;
|
||||
fullPath = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue