UNPKG

651 BJavaScriptView Raw
1"use strict";
2
3const fs = require('fs');
4const path = require('path');
5
6module.exports = function(bin) {
7 var paths = process.env.PATH.split(path.delimiter);
8 /*istanbul ignore next*/
9 var exts = process.env.PATHEXT ? process.env.PATHEXT.split(path.delimiter) : [""];
10
11 exts = exts.filter(function(val) {
12 return !!val;
13 });
14 exts.push(""); //handle direct bin calls
15
16 for(var i = 0; i < paths.length; i++) {
17 var ext;
18 var _full;
19 var full = path.join(paths[i], bin);
20
21 for(ext = 0; ext < exts.length; ext++) {
22 _full = full + exts[ext];
23 if(fs.existsSync(_full))
24 return _full;
25 }
26 }
27 return false;
28};