UNPKG

dnsweeper

Version:

Advanced CLI tool for DNS record risk analysis and cleanup. Features CSV import for Cloudflare/Route53, automated risk assessment, and parallel DNS validation.

53 lines 2.29 kB
#!/usr/bin/env node import { readFileSync } from 'fs'; import { dirname, join } from 'path'; import { fileURLToPath } from 'url'; import { Command } from 'commander'; import { createListCommand, createAddCommand, createDeleteCommand, createImportCommand, createAnalyzeCommand, createLookupCommand, createSweepCommand, createValidateCommand, } from './commands/index.js'; import { loadConfig } from './lib/config.js'; import { Logger } from './lib/logger.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); export function createProgram() { const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8')); const program = new Command() .name('dnsweeper') .description(packageJson.description) .version(packageJson.version) .option('-v, --verbose', 'Enable verbose output') .option('-q, --quiet', 'Suppress non-error output') .option('-c, --config <path>', 'Path to configuration file'); program.addCommand(createListCommand()); program.addCommand(createAddCommand()); program.addCommand(createDeleteCommand()); program.addCommand(createImportCommand()); program.addCommand(createAnalyzeCommand()); program.addCommand(createLookupCommand()); program.addCommand(createSweepCommand()); program.addCommand(createValidateCommand()); program.on('command:*', () => { const logger = new Logger(); logger.error(`Invalid command: ${program.args.join(' ')}`); logger.info('Run "dnsweeper --help" for a list of available commands'); process.exit(1); }); return program; } export async function main() { try { const program = createProgram(); // 設定ファイルの読み込み(パース前に実行) const opts = program.opts(); const config = await loadConfig(opts.config); // グローバル設定をプログラムに追加 program.dnsSweeperConfig = config; await program.parseAsync(process.argv); } catch (error) { const logger = new Logger(); logger.error(error instanceof Error ? error.message : 'Unknown error occurred'); process.exit(1); } } void main(); //# sourceMappingURL=index.js.map