build
Version:
An ant-like build program for node
41 lines (32 loc) • 1.07 kB
JavaScript
var util = require("util"),
Promise = require("promised-io").Promise,
fs = require("fs"),
files,
_logger;
var addFile = function (stream, p) {
var file = files.shift();
readstream = fs.createReadStream(file, { encoding: 'utf-8' });
readstream.on("end",function(){
_logger.debug("in end method of readstream.");
if (files.length > 0) {
_logger.debug("going around again.");
addFile(stream,p);
} else {
_logger.debug("closing stream and resolving promise...");
stream.end();
p.resolve(true);
}
});
readstream.pipe(stream, {end: false});
};
module.exports.tasks = {
concat: function (options, config, logger) {
var p = new Promise(),
newFile = fs.createWriteStream(options.target);
logger.info("In concat... options passed: " + util.inspect(options,false,null));
_logger = logger;
files = Array.clone(options.files);
addFile(newFile, p);
return p;
}
};