cousteau
Recursive directory walker that retrieves all dir/file paths along with their stats and follows symlinks.
Features
- Traverses recursively and asynchronously all sub-directories.
- Can ignore artifacts via filtering mechanism based on CousteauStats properties.
- Properly resolves and follows symlinks. (filtering in symlinks is applied based on the original target artifact)
- Reports broken symlinks.
Install
$ npm install cousteau
API
The function accepts three arguments
cousteau(path, [ignoreOptions], callback)
path
- The target directory pathingoreOptions
- Optional filtering optioncallback
- The callback gets two arguments(errors, result)
where result is an object with below structure
// Result object dirs: CousteauStats files: CousteauStats brokenSymlinks: String
CousteauStats
Is an fs.Stats instance extended with the path
property.
For example:
path string dev number mode number nlink number uid number gid number rdev number blksize number ino number size number blocks number atime Date object mtime Date object ctime Date object isFile
The ignoreOptions
can be applied to one or more of the CousteauStats properties either on the directories and/or the files.
Example
const cousteau = ; // Without filtering; // Find all png files that their size is more than 1500 bytes// and are children of directories that contain the "zilla" substring in their name const ignoreOptions = dir: !p file: !/.*\.png$/i s <= 1500 ; ;
Test
$ npm test
Note that in order to run the tests you need NodeJS version >= 6
License
Copyright (c) 2017 Ioannis Tzanellis
Released under the MIT license