assets.js
1 #!/usr/bin/env node 2 3 /** 4 * Assets Stage CLI 5 */ 6 7 import '../utils/load-env.js'; 8 import { runAssetsStage, getAssetsStats, backfillScreenshots } from '../stages/assets.js'; 9 import { parseFlags } from '../utils/flag-parser.js'; 10 import Logger from '../utils/logger.js'; 11 12 const logger = new Logger('AssetsCLI'); 13 const error = (...args) => logger.error(...args); 14 15 async function main() { 16 const command = process.argv[2]; 17 18 try { 19 if (command === 'stats') { 20 const stats = getAssetsStats(); 21 console.log('\nAssets Statistics:'); 22 console.log(`Total Sites: ${stats.total_sites}`); 23 console.log(`Sites with Screenshots: ${stats.sites_with_screenshots}`); 24 console.log(`Captured Sites: ${stats.captured_sites}`); 25 console.log(`Pending Capture: ${stats.pending_capture}`); 26 } else if (command === 'backfill') { 27 const limit = parseInt(process.argv[3] || '10', 10); 28 await backfillScreenshots(limit); 29 } else { 30 const { limit } = parseFlags(); 31 await runAssetsStage({ limit }); 32 } 33 } catch (err) { 34 error(err.message); 35 process.exit(1); 36 } 37 } 38 39 main();