From 7be74e2a1c9e7b09d9b0ed68d852b5050595ffbf Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Thu, 15 Dec 2016 12:09:25 -0500 Subject: [PATCH 01/12] adding ability to specify git style submodules inherited from dependencies. enables plugin infrastructure where subcommands can be separated into different modules and repos --- index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.js b/index.js index 5344efb08..ff0e7a1d3 100644 --- a/index.js +++ b/index.js @@ -531,6 +531,10 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { isExplicitJS = true; } else if (exists(localBin)) { bin = localBin; + } else { + console.log('lets see', bin, localBin) + bin = require('find-module-bin')(bin) + console.log('and', bin, localBin) } args = args.slice(1); From dc70f71cc2e8b9b098f4446570ec6e5ebe8f1695 Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Thu, 15 Dec 2016 12:11:53 -0500 Subject: [PATCH 02/12] adding find-module-bin dependency --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index fb7a2bba0..f5bf6c81f 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "index.js" ], "dependencies": { + "find-module-bin": "0.0.0", "graceful-readlink": ">= 1.0.0" } } From 3109d5728fc8a79f2dd80a0bec88bdc00323e2fe Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Thu, 15 Dec 2016 12:17:53 -0500 Subject: [PATCH 03/12] bumping find-module-bin --- index.js | 5 ++--- package.json | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index ff0e7a1d3..b70989820 100644 --- a/index.js +++ b/index.js @@ -6,6 +6,7 @@ var EventEmitter = require('events').EventEmitter; var spawn = require('child_process').spawn; var readlink = require('graceful-readlink').readlinkSync; var path = require('path'); +var findModuleBin = require('find-module-bin'); var dirname = path.dirname; var basename = path.basename; var fs = require('fs'); @@ -532,9 +533,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { } else if (exists(localBin)) { bin = localBin; } else { - console.log('lets see', bin, localBin) - bin = require('find-module-bin')(bin) - console.log('and', bin, localBin) + bin = findModuleBin(bin) } args = args.slice(1); diff --git a/package.json b/package.json index f5bf6c81f..d24b80ada 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "index.js" ], "dependencies": { - "find-module-bin": "0.0.0", + "find-module-bin": "0.0.1", "graceful-readlink": ">= 1.0.0" } } From 42a9d8e9b97e73c7a118e8627edcdbfdc823cc13 Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Tue, 7 Feb 2017 14:57:34 -0500 Subject: [PATCH 04/12] fixing git subcommands on windows --- index.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index b70989820..36d82c498 100644 --- a/index.js +++ b/index.js @@ -530,10 +530,10 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { if (exists(localBin + '.js')) { bin = localBin + '.js'; isExplicitJS = true; - } else if (exists(localBin)) { + } else if (process.platform === 'win32' ? exists(localBin + '.cmd') : exists(localBin)) { bin = localBin; } else { - bin = findModuleBin(bin) + bin = findModuleBin(process.platform === 'win32' ? bin + '.cmd' : bin) } args = args.slice(1); @@ -550,8 +550,15 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); } } else { - args.unshift(bin); - proc = spawn(process.execPath, args, { stdio: 'inherit'}); + if (isExplicitJS) { + args.unshift(bin); + // add executable arguments to spawn + args = (process.execArgv || []).concat(args); + + proc = spawn('node', args, { stdio: 'inherit'}); + } else { + proc = spawn(bin, args, { stdio: 'inherit'}); + } } proc.on('close', process.exit.bind(process)); From fc6c36465fde78f64a55c2ead53fe049838fdfdb Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Tue, 7 Feb 2017 15:17:54 -0500 Subject: [PATCH 05/12] bumping find-module-bin for es5 compat --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d24b80ada..eb54dd9dd 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "index.js" ], "dependencies": { - "find-module-bin": "0.0.1", + "find-module-bin": "0.0.2", "graceful-readlink": ">= 1.0.0" } } From 3f5e2a9bfd0a6c016e23fddee5f3e291f72e0612 Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Thu, 13 Jul 2017 13:58:05 -0400 Subject: [PATCH 06/12] using current convention for spawn --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 34baa7d1d..17d3fceda 100644 --- a/index.js +++ b/index.js @@ -554,7 +554,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { // add executable arguments to spawn args = (process.execArgv || []).concat(args); - proc = spawn('node', args, { stdio: 'inherit'}); + proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); } else { proc = spawn(bin, args, { stdio: 'inherit'}); } From 245bc4c84ba72d447ab30ec3e2a4456e34052b59 Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Tue, 24 Apr 2018 15:18:44 -0500 Subject: [PATCH 07/12] fixing lint errors. adding lint:fix target --- index.js | 3 +- package-lock.json | 254 +++++++++++++++++++++++++++++++++------------- package.json | 1 + 3 files changed, 185 insertions(+), 73 deletions(-) diff --git a/index.js b/index.js index 6112258a1..0b6829315 100644 --- a/index.js +++ b/index.js @@ -548,7 +548,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { } else if (process.platform === 'win32' ? exists(localBin + '.cmd') : exists(localBin)) { bin = localBin; } else { - bin = findModuleBin(process.platform === 'win32' ? bin + '.cmd' : bin) + bin = findModuleBin(process.platform === 'win32' ? bin + '.cmd' : bin); } args = args.slice(1); @@ -574,7 +574,6 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { } else { args.unshift(bin); proc = spawn(process.execPath, args, { stdio: 'inherit' }); - //proc = spawn(bin, args, { stdio: 'inherit'}); } } diff --git a/package-lock.json b/package-lock.json index 945ab7fc0..05e7936a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", "dev": true }, "acorn-jsx": { @@ -68,9 +68,9 @@ "dev": true }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "1.0.3" @@ -91,6 +91,11 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.find": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", @@ -134,6 +139,12 @@ "concat-map": "0.0.1" } }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -208,13 +219,14 @@ "dev": true }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { + "buffer-from": "1.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.3", + "readable-stream": "2.3.6", "typedarray": "0.0.6" } }, @@ -236,14 +248,13 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.38" + "es5-ext": "0.10.42" } }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -292,7 +303,7 @@ "requires": { "globby": "5.0.0", "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1", @@ -348,13 +359,14 @@ } }, "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-iterator": { @@ -364,7 +376,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.42", "es6-symbol": "3.1.1" } }, @@ -375,7 +387,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", @@ -389,7 +401,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -402,7 +414,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.42" } }, "es6-weak-map": { @@ -412,7 +424,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -431,7 +443,7 @@ "requires": { "es6-map": "0.1.5", "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -443,12 +455,12 @@ "requires": { "babel-code-frame": "6.26.0", "chalk": "1.1.3", - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", "doctrine": "2.1.0", "escope": "3.6.0", - "espree": "3.5.2", - "esquery": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", "estraverse": "4.2.0", "esutils": "2.0.2", "file-entry-cache": "2.0.0", @@ -457,12 +469,12 @@ "ignore": "3.3.7", "imurmurhash": "0.1.4", "inquirer": "0.12.0", - "is-my-json-valid": "2.17.1", + "is-my-json-valid": "2.17.2", "is-resolvable": "1.1.0", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "json-stable-stringify": "1.0.1", "levn": "0.3.0", - "lodash": "4.17.4", + "lodash": "4.17.10", "mkdirp": "0.5.1", "natural-compare": "1.4.0", "optionator": "0.8.2", @@ -592,12 +604,12 @@ "dev": true }, "espree": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", - "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.3.0", + "acorn": "5.5.3", "acorn-jsx": "3.0.1" } }, @@ -608,22 +620,21 @@ "dev": true }, "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { "estraverse": "4.2.0" } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -645,7 +656,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.42" } }, "exit-hook": { @@ -680,6 +691,15 @@ "object-assign": "4.1.1" } }, + "find-module-bin": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/find-module-bin/-/find-module-bin-0.0.2.tgz", + "integrity": "sha1-me+E+1SK7a47/k2hS2GEbNmIhmY=", + "requires": { + "debug": "2.6.9", + "global-paths": "1.0.0" + } + }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -770,6 +790,50 @@ "path-is-absolute": "1.0.1" } }, + "global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "requires": { + "global-prefix": "0.1.5", + "is-windows": "0.2.0" + }, + "dependencies": { + "is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" + } + } + }, + "global-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-paths/-/global-paths-1.0.0.tgz", + "integrity": "sha1-P/yENBWU5Hsyv63leFNV1N9/6sc=", + "requires": { + "array-unique": "0.3.2", + "global-modules": "0.2.3", + "is-windows": "1.0.2" + } + }, + "global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "requires": { + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "0.2.0", + "which": "1.3.0" + }, + "dependencies": { + "is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" + } + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -820,6 +884,14 @@ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "requires": { + "parse-passwd": "1.0.0" + } + }, "ignore": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", @@ -848,6 +920,11 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, "inquirer": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", @@ -860,7 +937,7 @@ "cli-cursor": "1.0.2", "cli-width": "2.2.0", "figures": "1.7.0", - "lodash": "4.17.4", + "lodash": "4.17.10", "readline2": "1.0.1", "run-async": "0.1.0", "rx-lite": "3.1.2", @@ -902,14 +979,21 @@ "number-is-nan": "1.0.1" } }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, "is-my-json-valid": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", - "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "dev": true, "requires": { "generate-function": "2.0.0", "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", "jsonpointer": "4.0.1", "xtend": "4.0.1" } @@ -921,9 +1005,9 @@ "dev": true }, "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { "is-path-inside": "1.0.1" @@ -965,12 +1049,22 @@ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -978,12 +1072,12 @@ "dev": true }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.9", + "argparse": "1.0.10", "esprima": "4.0.0" } }, @@ -1069,9 +1163,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "lodash.cond": { @@ -1113,8 +1207,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.5", @@ -1134,6 +1227,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -1175,7 +1274,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -1233,6 +1332,11 @@ "json-parse-better-errors": "1.0.1" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -1361,9 +1465,9 @@ "dev": true }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "progress": { @@ -1373,17 +1477,17 @@ "dev": true }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", - "process-nextick-args": "1.0.7", + "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, @@ -1632,9 +1736,9 @@ } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -1676,7 +1780,7 @@ "ajv": "4.11.8", "ajv-keywords": "1.5.1", "chalk": "1.1.3", - "lodash": "4.17.4", + "lodash": "4.17.10", "slice-ansi": "0.0.4", "string-width": "2.1.1" }, @@ -1780,6 +1884,14 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", diff --git a/package.json b/package.json index 74ff20343..84a1e9e67 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ }, "scripts": { "lint": "eslint index.js", + "lint:fix": "eslint --fix index.js", "test": "make test && npm run test-typings", "test-typings": "node_modules/typescript/bin/tsc -p tsconfig.json" }, From 7e22105913545276d33d70e4104fb79fc9aff60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Suhard?= Date: Mon, 30 Apr 2018 11:27:11 +0200 Subject: [PATCH 08/12] In Windows, "bat" scripts don't need interpreter --- index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.js b/index.js index 0b6829315..2016bc21c 100644 --- a/index.js +++ b/index.js @@ -572,8 +572,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); } else { - args.unshift(bin); - proc = spawn(process.execPath, args, { stdio: 'inherit' }); + proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); } } From ca9d8c62aab9e03a26e7672965b41401af4161cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Suhard?= Date: Mon, 30 Apr 2018 11:30:49 +0200 Subject: [PATCH 09/12] Merge code for win32 and others platforms which is the same now --- index.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/index.js b/index.js index 2016bc21c..677549c40 100644 --- a/index.js +++ b/index.js @@ -554,7 +554,6 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { args = args.slice(1); var proc; - if (process.platform !== 'win32') { if (isExplicitJS) { args.unshift(bin); // add executable arguments to spawn @@ -564,17 +563,6 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { } else { proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); } - } else { - if (isExplicitJS) { - args.unshift(bin); - // add executable arguments to spawn - args = (process.execArgv || []).concat(args); - - proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } else { - proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } - } var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP']; signals.forEach(function(signal) { From 3cb9f008e8036270162deb555237b56665acb55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Suhard?= Date: Mon, 30 Apr 2018 11:32:19 +0200 Subject: [PATCH 10/12] Style --- index.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 677549c40..a32b8f75e 100644 --- a/index.js +++ b/index.js @@ -554,15 +554,15 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { args = args.slice(1); var proc; - if (isExplicitJS) { - args.unshift(bin); - // add executable arguments to spawn - args = (process.execArgv || []).concat(args); + if (isExplicitJS) { + args.unshift(bin); + // add executable arguments to spawn + args = (process.execArgv || []).concat(args); - proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } else { - proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } + proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); + } else { + proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); + } var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP']; signals.forEach(function(signal) { From 57b5e93355b0608c8d0c9a1d12e5fceb60249344 Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Mon, 30 Apr 2018 11:23:00 -0500 Subject: [PATCH 11/12] fixing tab->spaces to pass eslint --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index a32b8f75e..8b227bcbe 100644 --- a/index.js +++ b/index.js @@ -559,7 +559,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { // add executable arguments to spawn args = (process.execArgv || []).concat(args); - proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); + proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); } else { proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); } From fc217f4bf1a4cc4728af169f4ea60659dd7a94ea Mon Sep 17 00:00:00 2001 From: Matt Walters Date: Tue, 1 May 2018 10:27:07 -0500 Subject: [PATCH 12/12] refactoring win32 platform test to variable for readability --- index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 8b227bcbe..53f7e5f71 100644 --- a/index.js +++ b/index.js @@ -542,13 +542,14 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) { // whether bin file is a js script with explicit `.js` extension var isExplicitJS = false; + var isWindows = process.platform === 'win32'; if (exists(localBin + '.js')) { bin = localBin + '.js'; isExplicitJS = true; - } else if (process.platform === 'win32' ? exists(localBin + '.cmd') : exists(localBin)) { + } else if (isWindows ? exists(localBin + '.cmd') : exists(localBin)) { bin = localBin; } else { - bin = findModuleBin(process.platform === 'win32' ? bin + '.cmd' : bin); + bin = findModuleBin(isWindows ? bin + '.cmd' : bin); } args = args.slice(1);