Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const glob = require('glob');
- const ROOT = 'root';
- const EXT = 'ext';
- function getSettings (argv) {
- return argv.reduce((params, arg, i, all) => {
- if (arg.indexOf('--') === 0 && all[i + 1]) {
- params[arg.slice(2)] = all[i + 1];
- }
- return params;
- }, {});
- }
- function checkSettings(settings) {
- if (!settings[ROOT]) {
- throw 'Please provide the root path for search';
- }
- if (!settings[EXT]) {
- throw 'Please provide file extention that have to be searched';
- }
- return true;
- }
- function getRootFolders(paths, root) {
- const roots = {};
- let counter = 0;
- paths.forEach(path => {
- const rootFolder = path.replace(root, '').replace(/^\//ig, '').split('/')[0];
- if (typeof roots[rootFolder] !== 'undefined') {
- roots[rootFolder] += 1;
- counter += 1;
- } else {
- roots[rootFolder] = 1;
- }
- });
- return {
- counter,
- folders: roots
- }
- }
- const settings = getSettings(process.argv);
- if (checkSettings(settings)) {
- const root = settings[ROOT].replace(/\/$/ig, '');
- glob(`${root}/**/*.${settings[EXT]}`, null, (er, files) => {
- const {counter, folders} = getRootFolders(files, root);
- console.log('total amount:', counter);
- console.log('');
- console.log('folders:', folders)
- })
- }
Add Comment
Please, Sign In to add comment