quartz/wallet/node_modules/treeify/examples/fs_tree.js
2022-03-04 20:05:23 +08:00

46 lines
1.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
(function(){
try {
var dive = require('dive');
} catch (ex) {
console.error('this example requires "dive", please run "npm install dive"');
process.exit(1);
}
var treeify = require('../treeify'),
path = require('path'),
fs = require('fs'),
rootDir = process.argv.length < 3 ? '.' : process.argv[2],
tree = {};
if ( ! fs.existsSync(rootDir)) {
console.error('path "' + rootDir + '" does not exist - unable to proceed!');
process.exit(1);
}
console.log(rootDir !== '.' ? path.relative(process.cwd(), rootDir) : '.');
function scanComplete() {
process.stdout.write('\r \r');
console.log(treeify.asTree(tree, true));
}
dive(rootDir, { all: true, directories: true }, function(err, thisPath) {
var relativePath = path.relative(rootDir, thisPath),
node = tree;
if (relativePath.indexOf('..') !== 0) {
relativePath.split(path.sep).forEach(function(part) {
typeof node[part] !== 'object' && (node[part] = {});
node = node[part];
});
}
}, scanComplete);
process.stdout.write('wait... ');
})();