Add shell.sudoSync()
This commit is contained in:
+19
-1
@@ -3,7 +3,8 @@
|
||||
exports = module.exports = {
|
||||
exec: exec,
|
||||
execSync: execSync,
|
||||
sudo: sudo
|
||||
sudo: sudo,
|
||||
sudoSync: sudoSync
|
||||
};
|
||||
|
||||
var assert = require('assert'),
|
||||
@@ -70,3 +71,20 @@ function sudo(tag, args, callback) {
|
||||
var cp = exec(tag, SUDO, [ '-S' ].concat(args), callback);
|
||||
cp.stdin.end();
|
||||
}
|
||||
|
||||
function sudoSync(tag, cmd, callback) {
|
||||
assert.strictEqual(typeof tag, 'string');
|
||||
assert.strictEqual(typeof cmd, 'string');
|
||||
|
||||
// -S makes sudo read stdin for password
|
||||
cmd = 'sudo -S ' + cmd;
|
||||
debug(cmd);
|
||||
|
||||
try {
|
||||
child_process.execSync(cmd, { stdio: 'inherit' });
|
||||
} catch (e) {
|
||||
if (callback) return callback(e);
|
||||
throw e;
|
||||
}
|
||||
if (callback) callback();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user