Select Git revision
filesys.js 1.13 KiB
// do file management
const fs = require('fs')
module.exports = {
// get a tree: takes the root (relative the process) and returns all branches below,
// includes route-to-root in list
getDirTree: (dir, debug) => {
return new Promise((resolve, reject) => {
// items and count,
let list = []
let count = 0
// recursor,
let launch = (dir) => {
if(debug) console.log('GDT launch at', dir)
// just counting actually,
count ++
fs.readdir(dir, (err, files) => {
if(err){
reject(err)
}
count --
for (file of files) {
if (file.includes('.')) {
if(debug) console.log('GDT pushing', `${dir}\\${file}`)
list.push(`${dir.substring(__dirname.length)}\\${file}`)
} else {
launch(`${dir}\\${file}`)
}
}
if(debug) console.log('GDT size', count)
if(!count){
// we sort,
list.sort()
resolve(list)
}
}) // end fs.readdir
} // end launch
launch(`${__dirname}\\${dir}`)
})
}
}