listdir.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * Module dependencies.
  3. */
  4. var ndir = require('../');
  5. var path = require('path');
  6. var root = process.argv[2] || '.';
  7. var parentDir = null;
  8. var dirLevels = {};
  9. ndir.walk(root, function onDir(dirpath, files) {
  10. var level = dirLevels[dirpath] || 0;
  11. var padding = '';
  12. if (level === 0) {
  13. console.log('├─┬ %s', dirpath);
  14. } else {
  15. padding = new Array(level).join(' ');
  16. if (files.length > 0) {
  17. console.log('│ %s└─┬ %s', padding, dirpath);
  18. } else {
  19. console.log('│ %s├── %s', padding, dirpath);
  20. }
  21. }
  22. level++;
  23. for (var i = 0, l = files.length, last = l - 1; i < l; i++) {
  24. var info = files[i];
  25. var p = info[0];
  26. var stats = info[1];
  27. if (stats.isDirectory()) {
  28. dirLevels[p] = level + 1;
  29. } else {
  30. if (i === last) {
  31. console.log('│ %s└── %s', new Array(level).join(' '), p);
  32. } else {
  33. console.log('│ %s├── %s', new Array(level).join(' '), p);
  34. }
  35. }
  36. }
  37. }, function end() {
  38. console.log('walk end.');
  39. }, function onError(err, errPath) {
  40. console.error('%s error %s', errPath, err);
  41. });