UNPKG

mecano

Version:

Common functions for system deployment.

48 lines (44 loc) 1.44 kB
// Generated by CoffeeScript 1.9.1 var fs, misc; module.exports = function(options, callback) { var do_chmod, do_stat; if (!options.destination) { return callback(Error("Missing destination: " + (JSON.stringify(options.destination)))); } if (!options.mode) { return callback(Error("Missing option 'mode'")); } do_stat = function() { if (options.stat) { return do_chmod(options.stat); } if (typeof options.log === "function") { options.log("Mecano `chmod`: stat \"" + options.destination + "\" [DEBUG]"); } return fs.stat(options.ssh, options.destination, function(err, stat) { if (err) { return callback(err); } return do_chmod(stat); }); }; do_chmod = function(stat) { if (misc.mode.compare(stat.mode, options.mode)) { if (typeof options.log === "function") { options.log("Mecano `chmod`: identical permissions on '" + options.destination + "' [INFO]"); } return callback(); } return fs.chmod(options.ssh, options.destination, options.mode, function(err) { if (!err) { if (typeof options.log === "function") { options.log("Mecano `chmod`: change permissions from '" + stat.mode + "' to '" + options.mode + "' on '" + options.destination + "' [WARN]"); } } return callback(err, true); }); }; return do_stat(); }; fs = require('ssh2-fs'); misc = require('./misc');