UNPKG

mecano

Version:

Common functions for system deployment.

64 lines (60 loc) 1.77 kB
// Generated by CoffeeScript 1.9.1 var fs, misc; module.exports = function(options, callback) { var content, destination, do_get, do_write, merge, ssh; merge = options.merge, destination = options.destination, content = options.content, ssh = options.ssh; if (options.clean == null) { options.clean = true; } if (!content) { return callback(new Error('Missing content')); } if (!destination) { return callback(new Error('Missing destination')); } do_get = function() { if (!merge) { return do_write(); } if (typeof options.log === "function") { options.log("Mecano `ini`: get content for merge"); } return fs.exists(ssh, destination, function(err, exists) { if (err) { return callback(err); } if (!exists) { return do_write(); } return fs.readFile(ssh, destination, 'ascii', function(err, c) { var parse; if (err && err.code !== 'ENOENT') { return callback(err); } content = misc.ini.clean(content, true); parse = options.parse || misc.ini.parse; content = misc.merge(parse(c, options), content); return do_write(); }); }); }; do_write = (function(_this) { return function() { var stringify; if (typeof options.log === "function") { options.log("Mecano `ini`: write"); } if (options.clean) { misc.ini.clean(content); } stringify = options.stringify || misc.ini.stringify; options.content = stringify(content, options); return _this.write(options, function(err, written) { return callback(err, written); }); }; })(this); return do_get(); }; fs = require('ssh2-fs'); misc = require('./misc');