sync-glob
Version:
Synchronize files and folders locally by glob patterns, watch option included.
49 lines (33 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _globAll = require('glob-all');
var _globAll2 = _interopRequireDefault(_globAll);
var _fs3 = require('./fs');
var _isGlob = require('./is-glob');
var _isGlob2 = _interopRequireDefault(_isGlob);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var mirror = function mirror(sources, target, options, notify) {
var flag = true;
var files = _globAll2.default.sync(sources.map(function (str) {
return (0, _isGlob2.default)(str) === -1 && _fs2.default.statSync(str).isDirectory() ? str + '/**' : str;
}));
if (options.deleteInitial) {
(0, _fs3.deleteExtra)(target, options, notify);
}
for (var i = 0, l = files.length; i < l; ++i) {
var file = files[i];
if (!(0, _fs3.copy)(file, (0, _fs3.resolveTarget)(file, target, options), options, notify)) {
flag = false;
break;
}
}
if (flag) {
notify('mirrored');
}
return flag;
};
exports.default = mirror;