Comparing version 0.2.1 to 0.2.2
@@ -1,18 +0,17 @@ | ||
var execSh = require("../"); | ||
var execSh = require('../') | ||
// run interactive bash shell | ||
execSh("echo ola && bash", { cwd: "/home" }, function(err){ | ||
execSh('echo ola && bash', { cwd: '/home' }, function (err) { | ||
if (err) { | ||
console.log("Exit code: ", err.code); | ||
return; | ||
console.log('Exit code: ', err.code) | ||
return | ||
} | ||
// collect streams output | ||
var child = execSh(["bash -c id", "echo olaola >&2"], true, | ||
function(err, stdout, stderr){ | ||
console.log("error: ", err); | ||
console.log("stdout: ", stdout); | ||
console.log("stderr: ", stderr); | ||
}); | ||
}); | ||
execSh(['bash -c id', 'echo olaola >&2'], true, | ||
function (err, stdout, stderr) { | ||
console.log('error: ', err) | ||
console.log('stdout: ', stdout) | ||
console.log('stderr: ', stderr) | ||
}) | ||
}) |
@@ -1,8 +0,5 @@ | ||
var | ||
cp = require("child_process"), | ||
merge = require("merge"); | ||
var cp = require('child_process') | ||
var merge = require('merge') | ||
var | ||
sh, cmd, | ||
defSpawnOptions = { stdio: "inherit" }; | ||
var defSpawnOptions = { stdio: 'inherit' } | ||
@@ -14,7 +11,7 @@ /** | ||
*/ | ||
function getShell(){ | ||
if (process.platform === "win32") { | ||
return { cmd: "cmd", arg: "/C" }; | ||
function getShell () { | ||
if (process.platform === 'win32') { | ||
return { cmd: 'cmd', arg: '/C' } | ||
} else { | ||
return { cmd: "sh", arg: "-c" }; | ||
return { cmd: 'sh', arg: '-c' } | ||
} | ||
@@ -34,58 +31,57 @@ } | ||
*/ | ||
function execSh(command, options, callback){ | ||
function execSh (command, options, callback) { | ||
if (Array.isArray(command)) { | ||
command = command.join(";"); | ||
command = command.join(';') | ||
} | ||
if (options === true) { | ||
options = { stdio: null }; | ||
options = { stdio: null } | ||
} | ||
if (typeof options === "function") { | ||
callback = options; | ||
options = defSpawnOptions; | ||
if (typeof options === 'function') { | ||
callback = options | ||
options = defSpawnOptions | ||
} else { | ||
options = options || {}; | ||
options = merge(true, defSpawnOptions, options); | ||
callback = callback || function(){}; | ||
options = options || {} | ||
options = merge(true, defSpawnOptions, options) | ||
callback = callback || function () {} | ||
} | ||
var | ||
child, | ||
stdout = "", stderr = "", | ||
shell = getShell(); | ||
var child | ||
var stdout = '' | ||
var stderr = '' | ||
var shell = getShell() | ||
try { | ||
child = cp.spawn(shell.cmd, [shell.arg, command], options); | ||
child = cp.spawn(shell.cmd, [shell.arg, command], options) | ||
} catch (e) { | ||
callback(e, stdout, stderr); | ||
return; | ||
callback(e, stdout, stderr) | ||
return | ||
} | ||
if (child.stdout) { | ||
child.stdout.on("data", function(data){ | ||
stdout += data; | ||
}); | ||
child.stdout.on('data', function (data) { | ||
stdout += data | ||
}) | ||
} | ||
if (child.stderr) { | ||
child.stderr.on("data", function(data){ | ||
stderr += data; | ||
}); | ||
child.stderr.on('data', function (data) { | ||
stderr += data | ||
}) | ||
} | ||
child.on("close", function(code){ | ||
child.on('close', function (code) { | ||
if (code) { | ||
var e = new Error("Shell command exit with non zero code: " + code); | ||
e.code = code; | ||
callback(e, stdout, stderr); | ||
var e = new Error('Shell command exit with non zero code: ' + code) | ||
e.code = code | ||
callback(e, stdout, stderr) | ||
} else { | ||
callback(null, stdout, stderr); | ||
callback(null, stdout, stderr) | ||
} | ||
}); | ||
}) | ||
return child; | ||
return child | ||
} | ||
module.exports = execSh; | ||
module.exports = execSh |
{ | ||
"name": "exec-sh", | ||
"version": "0.2.1", | ||
"version": "0.2.2", | ||
"description": "Execute shell command forwarding all stdio.", | ||
"main": "lib/exec-sh.js", | ||
"scripts": { | ||
"test": "npm run cover-test && npm run jshint", | ||
"test": "npm run lint && npm run cover-test", | ||
"cover-test": "istanbul cover --dir artifacts/coverage _mocha -- --reporter spec", | ||
"jshint": "jshint lib/ example/ test/ package.json", | ||
"lint": "standard --verbose **/*.js", | ||
"dev": "mocha --reporter spec --watch", | ||
@@ -35,12 +35,13 @@ "jsdoc": "jsdoc --private --destination artifacts/jsdoc lib/" | ||
"dependencies": { | ||
"merge": "^1.1.3" | ||
"merge": "^1.2.0" | ||
}, | ||
"devDependencies": { | ||
"coveralls": "^2.11.2", | ||
"istanbul": "^0.3.2", | ||
"jsdoc": "^3.3.0-alpha8", | ||
"jshint": "^2.5.1", | ||
"mocha": "^1.20.1", | ||
"sinon": "^1.10.2" | ||
"coveralls": "^3.0.1", | ||
"istanbul": "^0.4.5", | ||
"jsdoc": "^3.5.5", | ||
"jshint": "^2.9.5", | ||
"mocha": "^5.2.0", | ||
"sinon": "^6.0.1", | ||
"standard": "^11.0.1" | ||
} | ||
} |
@@ -5,2 +5,3 @@ # exec-sh | ||
[![NPM Downloads](https://img.shields.io/npm/dm/exec-sh.svg)](https://www.npmjs.com/package/exec-sh) | ||
[![Build Status](https://travis-ci.org/tsertkov/exec-sh.svg?branch=master)](https://travis-ci.org/tsertkov/exec-sh) | ||
@@ -7,0 +8,0 @@ [![Coverage Status](https://img.shields.io/coveralls/tsertkov/exec-sh.svg)](https://coveralls.io/r/tsertkov/exec-sh?branch=master) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
21217
8
215
103
7
3
Updatedmerge@^1.2.0