Skip to content

Commit

Permalink
Test passed
Browse files Browse the repository at this point in the history
  • Loading branch information
floatdrop committed Jan 17, 2014
1 parent 549173b commit b66e5a6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
26 changes: 17 additions & 9 deletions index.js
@@ -1,30 +1,38 @@
'use strict';

var walk = require('node-walk'),
var walk = require('walk'),
fs = require('fs'),
crypto = require('crypto'),
shasum = crypto.createHash('sha1');
path = require('path');

var f = function (path, opts, cb) {
var f = function (directory, opts, cb) {
if (typeof opts === 'function') {
cb = opts;
opts = {};
}

var walker = walk.walk(path, opts);
opts.filters = opts.filters || [];
opts.filters = opts.filters.concat([directory]);

directory = path.resolve(directory);

var walker = walk.walk(directory, opts);
var result = {};

walker.on('directories', function (root, dirStatsArray, next) {
result[root] = undefined;
walker.on('directory', function (root, dirStatsArray, next) {
var fullpath = path.join(root, dirStatsArray.name);
result[path.relative(directory, fullpath)] = undefined;
next();
});

walker.on('file', function (root, fileStats, next) {
fs.createReadStream(fileStats.name)
.on('data', shasum.bind(shasum))
var fullpath = path.join(root, fileStats.name);
var shasum = crypto.createHash('sha1');
fs.createReadStream(fullpath)
.on('data', shasum.update.bind(shasum))
.on('error', next)
.on('end', function () {
result[root] = shasum.digest('hex');
result[path.relative(directory, fullpath)] = shasum.digest('hex');
next();
});
});
Expand Down
5 changes: 4 additions & 1 deletion package.json
Expand Up @@ -29,5 +29,8 @@
"bugs": {
"url": "https://github.com/floatdrop/hashdir/issues"
},
"homepage": "https://github.com/floatdrop/hashdir"
"homepage": "https://github.com/floatdrop/hashdir",
"dependencies": {
"walk": "~2.2.1"
}
}

0 comments on commit b66e5a6

Please sign in to comment.