source: imaps-frontend/node_modules/isexe/index.js

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 1.2 KB
Line 
1var fs = require('fs')
2var core
3if (process.platform === 'win32' || global.TESTING_WINDOWS) {
4 core = require('./windows.js')
5} else {
6 core = require('./mode.js')
7}
8
9module.exports = isexe
10isexe.sync = sync
11
12function isexe (path, options, cb) {
13 if (typeof options === 'function') {
14 cb = options
15 options = {}
16 }
17
18 if (!cb) {
19 if (typeof Promise !== 'function') {
20 throw new TypeError('callback not provided')
21 }
22
23 return new Promise(function (resolve, reject) {
24 isexe(path, options || {}, function (er, is) {
25 if (er) {
26 reject(er)
27 } else {
28 resolve(is)
29 }
30 })
31 })
32 }
33
34 core(path, options || {}, function (er, is) {
35 // ignore EACCES because that just means we aren't allowed to run it
36 if (er) {
37 if (er.code === 'EACCES' || options && options.ignoreErrors) {
38 er = null
39 is = false
40 }
41 }
42 cb(er, is)
43 })
44}
45
46function sync (path, options) {
47 // my kingdom for a filtered catch
48 try {
49 return core.sync(path, options || {})
50 } catch (er) {
51 if (options && options.ignoreErrors || er.code === 'EACCES') {
52 return false
53 } else {
54 throw er
55 }
56 }
57}
Note: See TracBrowser for help on using the repository browser.