UNPKG

run-on-ssh

Version:

Run a node.js script on a given ssh server

56 lines (45 loc) 1.51 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = readFolder; var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _crypto = require('crypto'); var _promise = require('promise'); var _promise2 = _interopRequireDefault(_promise); var _lsr = require('lsr'); var _lsr2 = _interopRequireDefault(_lsr); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var readFile = _promise2.default.denodeify(_fs2.default.readFile); function order(a, b) { return a.path < b.path ? -1 : 1; } function readFolder(dirname, nodeVersion) { return (0, _lsr2.default)(dirname, { filter: function filter(entry) { return entry.name !== 'node_modules'; } }).then(function (res) { return _promise2.default.all(res.sort(order).map(function (entry) { if (entry.isDirectory()) { return { type: 'directory', path: entry.path }; } else { return readFile(entry.fullPath).then(function (content) { return { type: 'file', path: entry.path, content: content }; }); } })); }).then(function (entries) { var hash = (0, _crypto.createHash)('sha1'); hash.update(nodeVersion); entries.forEach(function (entry) { hash.update(entry.type, 'utf8'); hash.update(entry.path, 'utf8'); if (entry.type === 'file') { hash.update(entry.content); } }); return { entries: entries, hash: hash.digest('hex') }; }); }