corrade-nucleus-nucleons – Blame information for rev 36

Subversion Repositories:
Rev:
Rev Author Line No. Line
36 office 1 module.exports = isexe
2 isexe.sync = sync
3  
4 var fs = require('fs')
5  
6 function checkPathExt (path, options) {
7 var pathext = options.pathExt !== undefined ?
8 options.pathExt : process.env.PATHEXT
9  
10 if (!pathext) {
11 return true
12 }
13  
14 pathext = pathext.split(';')
15 if (pathext.indexOf('') !== -1) {
16 return true
17 }
18 for (var i = 0; i < pathext.length; i++) {
19 var p = pathext[i].toLowerCase()
20 if (p && path.substr(-p.length).toLowerCase() === p) {
21 return true
22 }
23 }
24 return false
25 }
26  
27 function checkStat (stat, path, options) {
28 if (!stat.isSymbolicLink() && !stat.isFile()) {
29 return false
30 }
31 return checkPathExt(path, options)
32 }
33  
34 function isexe (path, options, cb) {
35 fs.stat(path, function (er, stat) {
36 cb(er, er ? false : checkStat(stat, path, options))
37 })
38 }
39  
40 function sync (path, options) {
41 return checkStat(fs.statSync(path), path, options)
42 }