mecano
Version:
Common functions for system deployment.
50 lines (46 loc) • 1.34 kB
JavaScript
// Generated by CoffeeScript 1.9.1
var fs, path;
module.exports = function(options, callback) {
var do_read_source, do_write;
if (!(options.source || options.content)) {
return callback(new Error('Missing source or content'));
}
if (!options.destination) {
return callback(new Error('Missing destination'));
}
do_read_source = function() {
var ssh;
if (!options.source) {
return do_write();
}
ssh = options.local_source ? null : options.ssh;
return fs.exists(ssh, options.source, function(err, exists) {
if (!exists) {
return callback(new Error("Invalid source, got " + (JSON.stringify(options.source))));
}
return fs.readFile(ssh, options.source, 'utf8', function(err, content) {
if (err) {
return callback(err);
}
options.content = content;
return do_write();
});
});
};
do_write = (function(_this) {
return function() {
var extension;
if (!options.engine && options.source) {
extension = path.extname(options.source);
if (extension === '.j2') {
options.engine = 'nunjunks';
}
}
options.source = null;
return _this.write(options).then(callback);
};
})(this);
return do_read_source();
};
fs = require('ssh2-fs');
path = require('path');