mirror of
https://github.com/bower/bower.git
synced 2026-02-11 22:44:58 -05:00
Copy now uses ncp to copy if there is no ignore filter, which is must faster.
This commit is contained in:
@@ -1,21 +1,29 @@
|
||||
var fstream = require('fstream');
|
||||
var fstreamIgnore = require('fstream-ignore');
|
||||
var fs = require('fs');
|
||||
var ncp = require('ncp');
|
||||
var Q = require('q');
|
||||
|
||||
function copy(reader, writer) {
|
||||
var deferred = Q.defer();
|
||||
var deferred;
|
||||
var ignore;
|
||||
|
||||
// Reader
|
||||
if (reader.type === 'Directory' && reader.ignore) {
|
||||
ignore = reader.ignore;
|
||||
reader = fstreamIgnore(reader);
|
||||
reader.addIgnoreRules(ignore);
|
||||
} else {
|
||||
reader = fstream.Reader(reader);
|
||||
// If there's no ignore, use ncp because it is much faster
|
||||
// than fstream
|
||||
if (reader.type !== 'Directory' || !reader.ignore) {
|
||||
return Q.nfcall(ncp, reader.path, writer.path)
|
||||
.then(function () {
|
||||
if (writer.mode) {
|
||||
return Q.nfcall(fs.chmod, writer.path, writer.mode);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
deferred = Q.defer();
|
||||
ignore = reader.ignore;
|
||||
reader = fstreamIgnore(reader);
|
||||
reader.addIgnoreRules(ignore);
|
||||
|
||||
reader
|
||||
.on('error', deferred.reject)
|
||||
// Pipe to writer
|
||||
|
||||
Reference in New Issue
Block a user