mirror of
https://github.com/Jokiller230/puzzlevision.git
synced 2025-09-09 20:30:05 +00:00
✨ Run nixfmt-rfc-style on repository and add it to Zed config
This commit is contained in:
parent
f5e5adb2fd
commit
45494079c5
41 changed files with 441 additions and 240 deletions
|
@ -2,48 +2,64 @@
|
|||
lib,
|
||||
self,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
# Utility function to read a directory and return its contents.
|
||||
readDirectory = directory: builtins.readDir directory;
|
||||
|
||||
# Utility function to handle each filesystem entity (file or directory).
|
||||
filesystemEntityToAttrSet = directory: importArgs: name: type:
|
||||
if type == "directory"
|
||||
then dirToAttrSet "${directory}/${name}" importArgs
|
||||
else if name == "default.nix"
|
||||
then import "${directory}/${name}" importArgs
|
||||
else {};
|
||||
filesystemEntityToAttrSet =
|
||||
directory: importArgs: name: type:
|
||||
if type == "directory" then
|
||||
dirToAttrSet "${directory}/${name}" importArgs
|
||||
else if name == "default.nix" then
|
||||
import "${directory}/${name}" importArgs
|
||||
else
|
||||
{ };
|
||||
|
||||
filesystemEntityToList = directory: name: type:
|
||||
if type == "directory"
|
||||
then dirToModuleList "${directory}/${name}"
|
||||
else if name == "default.nix"
|
||||
then ["${directory}/${name}"]
|
||||
else [];
|
||||
filesystemEntityToList =
|
||||
directory: name: type:
|
||||
if type == "directory" then
|
||||
dirToModuleList "${directory}/${name}"
|
||||
else if name == "default.nix" then
|
||||
[ "${directory}/${name}" ]
|
||||
else
|
||||
[ ];
|
||||
|
||||
dirToModuleList = directory: let
|
||||
readDir = readDirectory directory;
|
||||
in
|
||||
dirToModuleList =
|
||||
directory:
|
||||
let
|
||||
readDir = readDirectory directory;
|
||||
in
|
||||
builtins.foldl' (
|
||||
acc: name:
|
||||
acc ++ (filesystemEntityToList directory name (builtins.getAttr name readDir))
|
||||
) [] (builtins.attrNames readDir);
|
||||
acc: name: acc ++ (filesystemEntityToList directory name (builtins.getAttr name readDir))
|
||||
) [ ] (builtins.attrNames readDir);
|
||||
|
||||
# Utility function to recursively load modules from a directory.
|
||||
dirToAttrSet = directory: importArgs: let
|
||||
# Read provided directory only once at the very start and save the result.
|
||||
readDir = readDirectory directory;
|
||||
in
|
||||
dirToAttrSet =
|
||||
directory: importArgs:
|
||||
let
|
||||
# Read provided directory only once at the very start and save the result.
|
||||
readDir = readDirectory directory;
|
||||
in
|
||||
# Iterate over the attr names of a readDir operation.
|
||||
builtins.foldl' (
|
||||
acc: name:
|
||||
# Merge outputs of handling a filesystem entity (file or directory) into accumulator.
|
||||
# Files return attribute sets with their resulting expressions, directories return the result of multiple file handling operations.
|
||||
acc // (filesystemEntityToAttrSet directory importArgs name (builtins.getAttr name readDir))
|
||||
) {} (builtins.attrNames readDir);
|
||||
acc // (filesystemEntityToAttrSet directory importArgs name (builtins.getAttr name readDir))
|
||||
) { } (builtins.attrNames readDir);
|
||||
|
||||
puzzlelib = dirToAttrSet ../../lib {inherit lib self;} // {inherit dirToAttrSet dirToModuleList filesystemEntityToList filesystemEntityToAttrSet;};
|
||||
in {
|
||||
puzzlelib = dirToAttrSet ../../lib { inherit lib self; } // {
|
||||
inherit
|
||||
dirToAttrSet
|
||||
dirToModuleList
|
||||
filesystemEntityToList
|
||||
filesystemEntityToAttrSet
|
||||
;
|
||||
};
|
||||
in
|
||||
{
|
||||
# Expose custom library on flake "lib" output
|
||||
flake.lib = puzzlelib;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue