mecano
Version:
Common functions for system deployment.
126 lines (121 loc) • 3.12 kB
JavaScript
// Generated by CoffeeScript 1.11.1
var fs, mustache, path;
module.exports = {
ssh: null,
handler: function(options) {
if (!options.stream) {
throw Error('Missing option: "stream"');
}
if (!options.serializer) {
throw Error('Missing option: "serializer"');
}
if (options.end == null) {
options.end = true;
}
return this.call(function() {
var close;
close = function() {
return setTimeout(function() {
if (options.end) {
return options.stream.close();
}
}, 100);
};
this.on('text', function(log) {
var data;
if (!options.serializer.text) {
return;
}
data = options.serializer.text(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('header', function(log) {
var data;
if (!options.serializer.header) {
return;
}
data = options.serializer.header(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('stdin', function(log) {
var data;
if (!options.serializer.stdin) {
return;
}
data = options.serializer.stdin(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('diff', function(log) {
var data;
if (!options.serializer.diff) {
return;
}
data = options.serializer.diff(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('handled', function(log) {
var data;
if (!options.serializer.handled) {
return;
}
data = options.serializer.handled(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('stdout_stream', function(log) {
var data;
if (!options.serializer.stdout_stream) {
return;
}
data = options.serializer.stdout_stream(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('stderr', function(log) {
var data;
if (!options.serializer.stderr) {
return;
}
data = options.serializer.stderr(log);
if (data != null) {
return options.stream.write(data);
}
});
this.on('end', function() {
var data;
if (!options.serializer.end) {
return;
}
data = options.serializer.end(log);
if (data != null) {
options.stream.write(data);
}
return close();
});
return this.on('error', function(err) {
var data;
if (!options.serializer.error) {
return;
}
data = options.serializer.error(log);
if (data != null) {
options.stream.write(data);
}
return close();
});
});
}
};
fs = require('fs');
path = require('path');
mustache = require('mustache');