Search

Is there a way to automatically import all .nix files in a directory?
My solution:
nix
let nixFilesInDirectory = directory: ( map (file: "${directory}/${file}") ( builtins.filter ( nodeName: (builtins.isList (builtins.match ".+\.nix$" nodeName)) && # checking that it is NOT a directory by seeing # if the node name forcefully used as a directory is an invalid path (!builtins.pathExists "${directory}/${nodeName}/.") ) (builtins.attrNames (builtins.readDir directory)) ) ); nixFilesInDirectories = directoryList: ( builtins.concatMap (directory: nixFilesInDirectory directory) (directoryList) ); # ... in { imports = nixFilesInDirectories ([ "${./programs}" "${./programs/terminal-niceties}" ]); # ... }
snippet from the full source code: [quazar-omega/home-manager-config (L5-L26)](https://codeberg.org/quazar-omega/home-manager-config/src/commit/7afabf08c04d0d9ce48e06091