aboutsummaryrefslogtreecommitdiff
path: root/node_modules/npm-run-path/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/npm-run-path/index.js')
-rw-r--r--node_modules/npm-run-path/index.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/npm-run-path/index.js b/node_modules/npm-run-path/index.js
new file mode 100644
index 0000000..56f31e4
--- /dev/null
+++ b/node_modules/npm-run-path/index.js
@@ -0,0 +1,39 @@
+'use strict';
+const path = require('path');
+const pathKey = require('path-key');
+
+module.exports = opts => {
+ opts = Object.assign({
+ cwd: process.cwd(),
+ path: process.env[pathKey()]
+ }, opts);
+
+ let prev;
+ let pth = path.resolve(opts.cwd);
+ const ret = [];
+
+ while (prev !== pth) {
+ ret.push(path.join(pth, 'node_modules/.bin'));
+ prev = pth;
+ pth = path.resolve(pth, '..');
+ }
+
+ // ensure the running `node` binary is used
+ ret.push(path.dirname(process.execPath));
+
+ return ret.concat(opts.path).join(path.delimiter);
+};
+
+module.exports.env = opts => {
+ opts = Object.assign({
+ env: process.env
+ }, opts);
+
+ const env = Object.assign({}, opts.env);
+ const path = pathKey({env});
+
+ opts.path = env[path];
+ env[path] = module.exports(opts);
+
+ return env;
+};