UNPKG

mecano

Version:

Common functions for system deployment.

57 lines (53 loc) 1.5 kB
// Generated by CoffeeScript 1.11.1 var fs, misc; module.exports = function(options, callback) { var do_chmod, do_stat; options.log({ message: "Entering chmod", level: 'DEBUG', module: 'mecano/lib/chmod' }); if (!options.target) { return callback(Error("Missing target: " + (JSON.stringify(options.target)))); } if (!options.mode) { return callback(Error("Missing option 'mode'")); } do_stat = function() { if (options.stat) { return do_chmod(options.stat); } options.log({ message: "Stat \"" + options.target + "\"", level: 'DEBUG', module: 'mecano/lib/chmod' }); return fs.stat(options.ssh, options.target, function(err, stat) { if (err) { return callback(err); } return do_chmod(stat); }); }; do_chmod = function(stat) { if (misc.mode.compare(stat.mode, options.mode)) { options.log({ message: "Identical permissions on \"" + options.target + "\"", level: 'INFO', module: 'mecano/lib/chmod' }); return callback(); } return fs.chmod(options.ssh, options.target, options.mode, function(err) { options.log({ message: "Change permissions from \"" + stat.mode + "\" to \"" + options.mode + "\" on \"" + options.target + "\"", level: 'WARN', module: 'mecano/lib/chmod' }); return callback(err, true); }); }; return do_stat(); }; fs = require('ssh2-fs'); misc = require('../misc');