diff --git a/external/.eslintrc b/external/.eslintrc index b60ef2b5e..52a4bc203 100644 --- a/external/.eslintrc +++ b/external/.eslintrc @@ -5,7 +5,6 @@ "env": { "node": true, - "shelljs": true, }, "rules": { diff --git a/package.json b/package.json index e3ee2c866..a53fea4af 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "mkdirp": "^0.5.1", "node-ensure": "^0.0.0", "rimraf": "^2.4.1", - "shelljs": "~0.4.0", "streamqueue": "^1.1.1", "systemjs": "^0.20.7", "systemjs-plugin-babel": "0.0.21", diff --git a/test/.eslintrc b/test/.eslintrc index 692abd312..30cdb53cc 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -5,7 +5,6 @@ "env": { "node": true, - "shelljs": true, "jasmine": true, }, } diff --git a/test/webbrowser.js b/test/webbrowser.js index 570d32874..aa158cd0c 100644 --- a/test/webbrowser.js +++ b/test/webbrowser.js @@ -22,7 +22,6 @@ var fs = require('fs'); var path = require('path'); var spawn = require('child_process').spawn; var testUtils = require('./testutils.js'); -var shelljs = require('shelljs'); var crypto = require('crypto'); var tempDirPrefix = 'pdfjs_'; @@ -141,28 +140,41 @@ WebBrowser.prototype = { var cmdKillAll, cmdCheckAllKilled, isAllKilled; if (process.platform === 'win32') { - var wmicPrefix = 'wmic process where "not Name = \'cmd.exe\' ' + + var wmicPrefix = ['process', 'where', '"not Name = \'cmd.exe\' ' + 'and not Name like \'%wmic%\' ' + - 'and CommandLine like \'%' + this.uniqStringId + '%\'" '; - cmdKillAll = wmicPrefix + 'call terminate'; - cmdCheckAllKilled = wmicPrefix + 'get CommandLine'; + 'and CommandLine like \'%' + this.uniqStringId + '%\'"']; + cmdKillAll = { + file: 'wmic', + args: wmicPrefix.concat(['call', 'terminate']) + }; + cmdCheckAllKilled = { + file: 'wmic', + args: wmicPrefix.concat(['get', 'CommandLine']) + }; isAllKilled = function(exitCode, stdout) { return stdout.indexOf(this.uniqStringId) === -1; }.bind(this); } else { - cmdKillAll = 'pkill -f ' + this.uniqStringId; - cmdCheckAllKilled = 'pgrep -f ' + this.uniqStringId; + cmdKillAll = {file: 'pkill', args: ['-f', this.uniqStringId]}; + cmdCheckAllKilled = {file: 'pgrep', args: ['-f', this.uniqStringId]}; isAllKilled = function(pgrepStatus) { return pgrepStatus === 1; // "No process matched.", per man pgrep. }; } function execAsyncNoStdin(cmd, onExit) { - var proc = shelljs.exec(cmd, { - async: true, - silent: true, - }, onExit); + var proc = spawn(cmd.file, cmd.args, { + shell: true, + stdio: 'pipe', + }); // Close stdin, otherwise wmic won't run. proc.stdin.end(); + var stdout = ''; + proc.stdout.on('data', (data) => { + stdout += data; + }); + proc.on('close', (code) => { + onExit(code, stdout); + }); } var killDateStart = Date.now(); // Note: First process' output it shown, the later outputs are suppressed. @@ -235,7 +247,7 @@ ChromiumBrowser.prototype.buildArguments = function (url) { WebBrowser.create = function (desc) { var name = desc.name; - var path = shelljs.which(desc.path); + var path = fs.realpathSync(desc.path); if (!path) { throw new Error('Browser executable not found: ' + desc.path); }