/ src / cli / assets.js
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();