first commit
This commit is contained in:
69
build/node_modules/fqueue/examples/du1.js
generated
vendored
Normal file
69
build/node_modules/fqueue/examples/du1.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
var fs = require('fs'),
|
||||
path = require('path'),
|
||||
FunctionQueue = require('..');
|
||||
|
||||
function Diskusage(p, cb, options) {
|
||||
var self = this;
|
||||
|
||||
var fqueue = new FunctionQueue(options);
|
||||
var dirs = 0;
|
||||
var files = 0;
|
||||
var bytes = 0;
|
||||
|
||||
function readdir(p) {
|
||||
var args = arguments;
|
||||
|
||||
fs.readdir(p, function(err, files) {
|
||||
if(err) {
|
||||
fqueue.error(err, readdir, args);
|
||||
} else {
|
||||
files.forEach(function(file) {
|
||||
fqueue.enqueue(stat, [path.join(p, file)]);
|
||||
});
|
||||
}
|
||||
fqueue.done();
|
||||
});
|
||||
}
|
||||
|
||||
function stat(p) {
|
||||
var args = arguments;
|
||||
|
||||
fs.stat(p, function(err, s) {
|
||||
if(err) {
|
||||
fqueue.error(err, stat, args);
|
||||
} else {
|
||||
if(s.isDirectory()) {
|
||||
dirs += 1;
|
||||
fqueue.enqueue(readdir, [p]);
|
||||
} else {
|
||||
files += 1;
|
||||
bytes += s.size;
|
||||
}
|
||||
}
|
||||
fqueue.done();
|
||||
});
|
||||
}
|
||||
|
||||
fqueue.on('error', function(err) {
|
||||
console.log('error:', err);
|
||||
});
|
||||
|
||||
fqueue.on('retry', function(func, args) {
|
||||
console.log('retry:', args[0]);
|
||||
});
|
||||
|
||||
fqueue.on('done', function() {
|
||||
cb(bytes, dirs, files, fqueue.errors);
|
||||
});
|
||||
|
||||
fqueue.start(stat, [p], this);
|
||||
}
|
||||
|
||||
// Runtime
|
||||
|
||||
Diskusage('.', function(bytes, dirs, files, errors) {
|
||||
console.log('');
|
||||
console.log('diskusage: %d bytes in %d dirs and %d files.', bytes, dirs, files);
|
||||
console.log(' %d unreadable paths.', errors);
|
||||
});
|
||||
Reference in New Issue
Block a user