UNPKG

mecano

Version:

Common functions for system deployment.

78 lines (74 loc) 2.02 kB
// Generated by CoffeeScript 1.11.1 var fs, misc; module.exports = function(options, callback) { var content, do_file, do_get, merge, ssh, target; options.log({ message: "Entering ini", level: 'DEBUG', module: 'mecano/lib/file/ini' }); merge = options.merge, target = options.target, content = options.content, ssh = options.ssh; if (options.clean == null) { options.clean = true; } if (!content) { return callback(new Error('Missing content')); } if (!target) { return callback(new Error('Missing target')); } do_get = function() { if (!merge) { return do_file(); } options.log({ message: "Get content for merge", level: 'DEBUG', module: 'mecano/lib/file/ini' }); return fs.exists(ssh, target, function(err, exists) { if (err) { return callback(err); } if (!exists) { return do_file(); } return fs.readFile(ssh, target, '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_file(); }); }); }; do_file = (function(_this) { return function() { var stringify; if (options.clean) { options.log({ message: "Clean content", level: 'INFO', module: 'mecano/lib/file/ini' }); misc.ini.clean(content); } options.log({ message: "Serialize content", level: 'DEBUG', module: 'mecano/lib/file/ini' }); stringify = options.stringify || misc.ini.stringify; options.content = stringify(content, options); return _this.file(options, function(err, written) { return callback(err, written); }); }; })(this); return do_get(); }; fs = require('ssh2-fs'); misc = require('../misc');