summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js b/bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js
new file mode 100644
index 00000000..1995ea4a
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/isexe/mode.js
@@ -0,0 +1,41 @@
+module.exports = isexe
+isexe.sync = sync
+
+var fs = require('fs')
+
+function isexe (path, options, cb) {
+ fs.stat(path, function (er, stat) {
+ cb(er, er ? false : checkStat(stat, options))
+ })
+}
+
+function sync (path, options) {
+ return checkStat(fs.statSync(path), options)
+}
+
+function checkStat (stat, options) {
+ return stat.isFile() && checkMode(stat, options)
+}
+
+function checkMode (stat, options) {
+ var mod = stat.mode
+ var uid = stat.uid
+ var gid = stat.gid
+
+ var myUid = options.uid !== undefined ?
+ options.uid : process.getuid && process.getuid()
+ var myGid = options.gid !== undefined ?
+ options.gid : process.getgid && process.getgid()
+
+ var u = parseInt('100', 8)
+ var g = parseInt('010', 8)
+ var o = parseInt('001', 8)
+ var ug = u | g
+
+ var ret = (mod & o) ||
+ (mod & g) && gid === myGid ||
+ (mod & u) && uid === myUid ||
+ (mod & ug) && myUid === 0
+
+ return ret
+}