sicksync
Version:
Don’t accept the available as the preferable. Go extra mile with extra speed.
53 lines (34 loc) • 1.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bigSync = bigSync;
var _rsync = require('rsync');
var _rsync2 = _interopRequireDefault(_rsync);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
var _child_process = require('child_process');
var _util = require('./util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function bigSync(project) {
const log = (0, _util.generateLog)(project.project, _os2.default.hostname());
function consoleLogFromBuffer(buffer) {
log(buffer.toString());
}
const params = _lodash2.default.isPlainObject(_lodash2.default.get(arguments, 1)) ? _lodash2.default.get(arguments, 1) : {};
const onComplete = _lodash2.default.isFunction(_lodash2.default.last(arguments)) ? _lodash2.default.last(arguments) : _lodash2.default.noop;
if (_os2.default.platform() === 'win32') {
project.sourceLocation = (0, _child_process.execSync)('cygpath ' + project.sourceLocation).toString();
}
const rsync = new _rsync2.default().shell('ssh').flags('az').exclude(project.excludes).source((0, _util.ensureTrailingSlash)(project.sourceLocation)).set('delete').destination(project.username + '@' + project.hostname + ':' + project.destinationLocation);
if (params.dry) {
rsync.set('dry-run');
}
if (params.debug) {
rsync.progress();
rsync.output(consoleLogFromBuffer, consoleLogFromBuffer);
}
rsync.execute(onComplete);
}
;