diff --git a/tools/files.js b/tools/files.js index 3b96f44225..e4ea3fdeca 100644 --- a/tools/files.js +++ b/tools/files.js @@ -10,6 +10,8 @@ var os = require('os'); var util = require('util'); var _ = require('underscore'); var Fiber = require('fibers'); +var crypto = require('crypto'); + var rimraf = require('./rimraf'); var Future = require('fibers/future'); var sourcemap = require('source-map'); @@ -279,19 +281,14 @@ var makeTreeReadOnly = function (p) { } }; +var stringHash = function (str) { + return crypto.createHash('sha256').update(str, 'utf8').digest('base64'); +}; + // Returns the base64 SHA256 of the given file. files.fileHash = function (filename) { - var crypto = require('crypto'); - var hash = crypto.createHash('sha256'); - hash.setEncoding('base64'); - var rs = files.createReadStream(filename); - var fut = new Future(); - rs.on('end', function () { - rs.close(); - fut.return(hash.digest('base64')); - }); - rs.pipe(hash, { end: false }); - return fut.wait(); + var contents = files.readFile(filename, "utf-8"); + return stringHash(contents); }; // This is the result of running fileHash on a blank file.