Add JSON output for eval inventory (#28058)

This commit is contained in:
Vedant Mahajan
2026-06-24 00:18:50 +05:30
committed by GitHub
parent d3ef6aca40
commit 6e0bd68e45
4 changed files with 752 additions and 30 deletions
+24 -7
View File
@@ -10,25 +10,40 @@
* @fileoverview CLI entry point for the eval inventory command.
*
* Scans all eval source files, runs the static analyzer on each,
* and prints a human-readable inventory report grouped by policy,
* file, and suite.
* and prints an inventory report grouped by policy, file, and suite.
*
* Usage:
* npm run eval:inventory
* npm run eval:inventory -- --json
* npm run eval:inventory -- --root /path/to/repo
* npm run eval:inventory -- --root /path/to/repo --json
*/
import {
collectInventory,
formatInventoryJson,
formatInventoryReport,
} from './utils/eval-inventory.js';
async function main() {
const rootFlagIndex = process.argv.indexOf('--root');
const repoRoot =
rootFlagIndex !== -1 && process.argv[rootFlagIndex + 1]
? process.argv[rootFlagIndex + 1]
: process.cwd();
const rootFlagValue =
rootFlagIndex !== -1 ? process.argv[rootFlagIndex + 1] : undefined;
if (rootFlagIndex !== -1 && rootFlagValue === undefined) {
console.error(
'Error: --root requires a directory path argument but none was provided.',
);
process.exit(1);
}
if (rootFlagValue && rootFlagValue.startsWith('--')) {
console.error(
`Error: --root value "${rootFlagValue}" looks like a flag. Provide a valid directory path.`,
);
process.exit(1);
}
const repoRoot = rootFlagValue ?? process.cwd();
const jsonMode = process.argv.includes('--json');
const result = await collectInventory(repoRoot);
@@ -37,7 +52,9 @@ async function main() {
process.exit(1);
}
console.log(formatInventoryReport(result));
console.log(
jsonMode ? formatInventoryJson(result) : formatInventoryReport(result),
);
}
main().catch((error) => {