mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-24 05:14:06 -06:00
46 lines
1.2 KiB
JavaScript
Executable File
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... ');
|
|
|
|
})();
|