diff --git a/lib/server/files.js b/lib/server/files.js index 60372ba8..91630139 100644 --- a/lib/server/files.js +++ b/lib/server/files.js @@ -12,6 +12,7 @@ var main = global.cloudcmd.main, fs = main.fs, path = main.path, + pipe = main.pipe, CloudFunc = main.cloudfunc, Util = main.util; @@ -67,4 +68,30 @@ } }; + object.readPipe = readPipe; + + function readPipe(files, writeStream, callback) { + var name, length = files && files.length; + + if (!length) + Util.exec(callback); + else { + name = files.pop(); + + pipe.create({ + from : name, + write : writeStream, + callback: function(error) { + if (error) + Util.exec(callback, error); + else + if (!length) + Util.exec(callback); + else + readPipe(files, writeStream, callback); + } + }); + } + } + })(this);