Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
node_modules /
pm2 /
lib /
tools /
Delete
Unzip
Name
Size
Permission
Date
Action
Config.js
6.09
KB
-rw-r--r--
2025-04-08 13:05
IsAbsolute.js
606
B
-rw-r--r--
2025-04-08 13:05
copydirSync.js
2.82
KB
-rw-r--r--
2025-04-08 13:05
deleteFolderRecursive.js
480
B
-rw-r--r--
2025-04-08 13:05
find-package-json.js
1.73
KB
-rw-r--r--
2025-04-08 13:05
fmt.js
2.04
KB
-rw-r--r--
2025-04-08 13:05
isbinaryfile.js
2.64
KB
-rw-r--r--
2025-04-08 13:05
json5.js
22.94
KB
-rw-r--r--
2025-04-08 13:05
open.js
1.57
KB
-rw-r--r--
2025-04-08 13:05
passwd.js
1.13
KB
-rw-r--r--
2025-04-08 13:05
promise.min.js
2.59
KB
-rw-r--r--
2025-04-08 13:05
sexec.js
1.17
KB
-rw-r--r--
2025-04-08 13:05
treeify.js
3.46
KB
-rw-r--r--
2025-04-08 13:05
which.js
3.49
KB
-rw-r--r--
2025-04-08 13:05
xdg-open
20.93
KB
-rwxr-xr-x
2025-04-08 13:05
Save
Rename
var fs = require('fs'); var path = require('path'); /* options: { utimes: false, // Boolean | Object, keep utimes if true mode: false, // Boolean | Number, keep file mode if true cover: true, // Boolean, cover if file exists filter: true, // Boolean | Function, file filter } */ function copydirSync(from, to, options) { if (typeof options === 'function') { options = { filter: options }; } if(typeof options === 'undefined') options = {}; if(typeof options.cover === 'undefined') { options.cover = true; } options.filter = typeof options.filter === 'function' ? options.filter : function(state, filepath, filename) { return options.filter; }; var stats = fs.lstatSync(from); var statsname = stats.isDirectory() ? 'directory' : stats.isFile() ? 'file' : stats.isSymbolicLink() ? 'symbolicLink' : ''; var valid = options.filter(statsname, from, path.dirname(from), path.basename(from)); if (statsname === 'directory' || statsname === 'symbolicLink') { // Directory or SymbolicLink if(valid) { try { fs.statSync(to); } catch(err) { if(err.code === 'ENOENT') { fs.mkdirSync(to, { recursive: true }); options.debug && console.log('>> ' + to); } else { throw err; } } rewriteSync(to, options, stats); if (statsname != 'symbolicLink') listDirectorySync(from, to, options); } } else if(stats.isFile()) { // File if(valid) { if(options.cover) { writeFileSync(from, to, options, stats); } else { try { fs.statSync(to); } catch(err) { if(err.code === 'ENOENT') { writeFileSync(from, to, options, stats); } else { throw err; } } } } } else { throw new Error('stats invalid: '+ from); } }; function listDirectorySync(from, to, options) { var files = fs.readdirSync(from); copyFromArraySync(files, from, to, options); } function copyFromArraySync(files, from, to, options) { if(files.length === 0) return true; var f = files.shift(); copydirSync(path.join(from, f), path.join(to, f), options); copyFromArraySync(files, from, to, options); } function writeFileSync(from, to, options, stats) { fs.writeFileSync(to, fs.readFileSync(from, 'binary'), 'binary'); options.debug && console.log('>> ' + to); rewriteSync(to, options, stats); } function rewriteSync(f, options, stats, callback) { if(options.cover) { var mode = options.mode === true ? stats.mode : options.mode; var utimes = options.utimes === true ? { atime: stats.atime, mtime: stats.mtime } : options.utimes; mode && fs.chmodSync(f, mode); utimes && fs.utimesSync(f, utimes.atime, utimes.mtime); } return true; } module.exports = copydirSync;