UNPKG

linguist-js

Version:

Analyse the programming languages used in a folder or from raw content, using the same rules that GitHub Linguist does.

27 lines (26 loc) 978 B
import analyseFs from '../entry/analyseFs.js'; import normaliseOpts from '../input/normaliseOpts.js'; import defaultOutput from './output/default.js'; import treeOutput from './output/tree.js'; const validCategories = ['data', 'programming', 'prose', 'markup']; export default async function runCliAnalysis(args) { // Check arguments if (args.categories?.some((category) => !validCategories.includes(category))) { console.log(`Error: '${args.categories.join(', ')}' contains an invalid category.`); console.log(`\tValid options: ${validCategories.join(', ')}.`); return; } // Analyse language data const folders = args.analyse === true ? ['.'] : args.analyse; const data = await analyseFs(folders, normaliseOpts(args)); // Print output if (!args.json) { defaultOutput(args, data); } else if (args.tree) { treeOutput(args, data); } else { console.dir(data, { depth: null }); } }