Skip to content
Snippets Groups Projects
Select Git revision
  • d0fd1b84a559fa2b3b6d06820dbf59c7a08c89ae
  • master default protected
  • leo
  • dex
  • pendulum
  • apfelstruder
  • littlerascal
7 results

filesys.js

Blame
  • 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}`)
        })
      }
    }