browserstack-local
Advanced tools
Comparing version
@@ -6,8 +6,7 @@ var childProcess = require('child_process'), | ||
LocalBinary = require('./LocalBinary'), | ||
LocalError = require('./LocalError'), | ||
psTree = require('ps-tree'); | ||
LocalError = require('./LocalError'); | ||
function Local(){ | ||
this.pid = undefined; | ||
this.isProcessRunning = false; | ||
this.retriesLeft = 5; | ||
@@ -62,6 +61,41 @@ this.key = process.env.BROWSERSTACK_ACCESS_KEY; | ||
that.pid = data['pid']; | ||
that.isProcessRunning = true; | ||
callback(); | ||
} | ||
}); | ||
// that.tunnel = childProcess.spawn(binaryPath, that.getBinaryArgs()); | ||
// that.tunnel.on('exit', function(){ | ||
// that.tunnel = undefined; | ||
// if(that.exitCallback) that.exitCallback(); | ||
// }); | ||
// that.stdout = fs.openSync(that.logfile, 'r'); | ||
// var chunkSize = 512, | ||
// buffer = new Buffer(81920), | ||
// bytesRead = 0, | ||
// error = undefined; | ||
// while(true){ | ||
// var bytes = fs.readSync(that.stdout, buffer, bytesRead, chunkSize, bytesRead); | ||
// if(bytes == 0) continue; | ||
// var buffRead = buffer.slice(bytesRead, bytesRead+bytes); | ||
// bytesRead += bytes; | ||
// var data = buffRead.toString(); | ||
// if(data.match(that.errorRegex)){ | ||
// fs.closeSync(that.stdout); | ||
// error = data.match(that.errorRegex)[0].trim(); | ||
// break; | ||
// } | ||
// if(data.match(that.doneRegex)){ | ||
// fs.closeSync(that.stdout); | ||
// break; | ||
// } | ||
// } | ||
// if(error) throw new LocalError(error); | ||
// callback(); | ||
}); | ||
@@ -71,3 +105,3 @@ }; | ||
this.isRunning = function(){ | ||
return this.pid && running(this.pid) && this.isProcessRunning; | ||
return this.pid && running(this.pid); | ||
}; | ||
@@ -77,3 +111,4 @@ | ||
if(!this.pid) return callback(); | ||
this.killAllProcesses(function(error){ | ||
this.opcode = 'stop'; | ||
this.tunnel = childProcess.execFile(this.binaryPath, this.getBinaryArgs(), function(error){ | ||
if(error) callback(new LocalError(error.toString())); | ||
@@ -259,33 +294,3 @@ callback(); | ||
}; | ||
this.killAllProcesses = function(callback){ | ||
psTree(this.pid, (err, children) => { | ||
var childPids = children.map(val => val.PID); | ||
var killChecker = setInterval(() => { | ||
if(childPids.length === 0) { | ||
clearInterval(killChecker); | ||
try { | ||
process.kill(this.pid); | ||
// This gives time to local binary to send kill signal to railsApp. | ||
setTimeout(() => { | ||
this.isProcessRunning = false; | ||
callback(); | ||
}, 2000); | ||
} catch(err) { | ||
this.isProcessRunning = false; | ||
callback(); | ||
} | ||
} | ||
for(var i in childPids) { | ||
try { | ||
process.kill(childPids[i]); | ||
} catch(err) { | ||
childPids.splice(i, 1); | ||
} | ||
} | ||
},500); | ||
}); | ||
}; | ||
} | ||
module.exports = Local; |
{ | ||
"name": "browserstack-local", | ||
"version": "1.3.5", | ||
"version": "1.3.6", | ||
"description": "Nodejs bindings for BrowserStack Local", | ||
@@ -22,3 +22,2 @@ "engine": "^0.10.44", | ||
"is-running": "^2.0.0", | ||
"ps-tree": "^1.1.0", | ||
"sinon": "^1.17.6", | ||
@@ -25,0 +24,0 @@ "temp-fs": "^0.9.9" |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
34629
0.49%4
-20%0
-100%786
-0.25%- Removed
- Removed