Skip to content
Snippets Groups Projects
filesys.js 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jake Read's avatar
    Jake Read committed
    // 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(true) console.log('GDT launch at', dir)
    
    Jake Read's avatar
    Jake Read committed
            // 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}`)
    
    Jake Read's avatar
    Jake Read committed
                } else {
    
                  launch(`${dir}${file}`)
    
    Jake Read's avatar
    Jake Read committed
                }
              }
              if(debug) console.log('GDT size', count)
              if(!count){
                // we sort,
                list.sort()
                resolve(list)
              }
            }) // end fs.readdir
          } // end launch
    
          launch(`${__dirname}/${dir}`)