diff options
Diffstat (limited to 'deps/npm/lib/doctor/checksum-cached-files.js')
-rw-r--r-- | deps/npm/lib/doctor/checksum-cached-files.js | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/deps/npm/lib/doctor/checksum-cached-files.js b/deps/npm/lib/doctor/checksum-cached-files.js deleted file mode 100644 index d50c326852..0000000000 --- a/deps/npm/lib/doctor/checksum-cached-files.js +++ /dev/null @@ -1,62 +0,0 @@ -var crypto = require('crypto') -var fs = require('fs') -var path = require('path') -var chain = require('slide').chain -var log = require('npmlog') -var npm = require('../npm') -var fileCompletion = require('../utils/completion/file-completion.js') - -function checksum (str) { - return crypto - .createHash('sha1') - .update(str, 'utf8') - .digest('hex') -} - -function checksumCachedFiles (cb) { - var tracker = log.newItem('checksumCachedFiles', 1) - tracker.info('checksumCachedFiles', 'Building file list of ' + npm.cache) - fileCompletion(npm.cache, '.', Infinity, function (e, files) { - if (e) { - tracker.finish() - return cb(e) - } - tracker.addWork(files.length) - tracker.completeWork(1) - chain(files.map(andChecksumFile), function (er) { - tracker.finish() - cb(null, !er) - }) - function andChecksumFile (f) { - return [function (next) { process.nextTick(function () { checksumFile(f, next) }) }] - } - function checksumFile (f, next) { - var file = path.join(npm.cache, f) - tracker.silly('checksumFile', f) - if (!/.tgz$/.test(file)) { - tracker.completeWork(1) - return next() - } - fs.readFile(file, function (err, tgz) { - tracker.completeWork(1) - if (err) return next(err) - try { - var pkgJSON = fs.readFileSync(path.join(path.dirname(file), 'package/package.json')) - } catch (e) { - return next() // no package.json in cche is ok - } - try { - var pkg = JSON.parse(pkgJSON) - var shasum = (pkg.dist && pkg.dist.shasum) || pkg._shasum - var actual = checksum(tgz) - if (actual !== shasum) return next(new Error('Checksum mismatch on ' + file + ', expected: ' + shasum + ', got: ' + shasum)) - return next() - } catch (e) { - return next(new Error('Error parsing JSON in ' + file + ': ' + e)) - } - }) - } - }) -} - -module.exports = checksumCachedFiles |