mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
60 lines
2 KiB
JavaScript
60 lines
2 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
if (!global.cloudcmd)
|
|
return console.log(
|
|
'# stream.js' + '\n' +
|
|
'# -----------' + '\n' +
|
|
'# Module is part of Cloud Commander,' + '\n' +
|
|
'# used for work with stream.' + '\n' +
|
|
'# If you wont to see at work call' + '\n' +
|
|
'# stream.createPipe' + '\n' +
|
|
'# http://coderaiser.github.io/cloudcmd' + '\n');
|
|
|
|
var main = global.cloudcmd.main,
|
|
fs = main.fs,
|
|
Util = main.util,
|
|
zlib = main.zlib;
|
|
|
|
exports.createPipe = function(pParams) {
|
|
var lZlib, lError, lMsg, lRead, lWrite, lIsFsWrite,
|
|
p = pParams;
|
|
|
|
if (p) {
|
|
lRead = p.read || fs.createReadStream(p.from, {
|
|
bufferSize: 4 * 1024
|
|
});
|
|
|
|
if (p.write)
|
|
lWrite = p.write;
|
|
else {
|
|
lWrite = fs.createWriteStream(p.to);
|
|
lIsFsWrite = true;
|
|
}
|
|
|
|
lError = function(pError) {
|
|
Util.exec(p.callback, pError);
|
|
};
|
|
|
|
if (p.zip) {
|
|
lZlib = zlib.createGzip();
|
|
lRead.on('error', lError);
|
|
lRead = lRead.pipe(lZlib);
|
|
}
|
|
|
|
lWrite.on('error', lError);
|
|
lRead.on('error', lError);
|
|
|
|
if (lIsFsWrite)
|
|
lWrite.on('open', function() {
|
|
lRead.pipe(lWrite);
|
|
lRead.on('end', Util.retExec(p.callback));
|
|
});
|
|
else {
|
|
lRead.pipe(lWrite);
|
|
lRead.on('end', Util.retExec(p.callback));
|
|
}
|
|
}
|
|
};
|
|
|
|
})();
|