{ self }: { scrollsDir }: let allSubDirs = builtins.attrNames ( builtins.readDir scrollsDir ); directoriesOnly = builtins.filter (name: let type = (builtins.readDir scrollsDir).${name}; in type == "directory" ) allSubDirs; hasScrollNix = dir: let scrollPath = scrollsDir + "/${dir}/scroll.nix"; in builtins.pathExists scrollPath; scrollDirs = builtins.filter hasScrollNix directoriesOnly; missingScrollDirs = builtins.filter (dir: !(hasScrollNix dir)) directoriesOnly; warnings = if builtins.length missingScrollDirs > 0 then builtins.trace "Warning: Found directories without scroll.nix: ${builtins.toString missingScrollDirs}" null else null; in scrollDirs