module.exports = isexe isexe.sync = sync

var fs = require('fs')

function checkPathExt (path, options) {

var pathext = options.pathExt !== undefined ?
  options.pathExt : process.env.PATHEXT

if (!pathext) {
  return true
}

pathext = pathext.split(';')
if (pathext.indexOf('') !== -1) {
  return true
}
for (var i = 0; i < pathext.length; i++) {
  var p = pathext[i].toLowerCase()
  if (p && path.substr(-p.length).toLowerCase() === p) {
    return true
  }
}
return false

}

function checkStat (stat, path, options) {

if (!stat.isSymbolicLink() && !stat.isFile()) {
  return false
}
return checkPathExt(path, options)

}

function isexe (path, options, cb) {

fs.stat(path, function (er, stat) {
  cb(er, er ? false : checkStat(stat, path, options))
})

}

function sync (path, options) {

return checkStat(fs.statSync(path), path, options)

}