dnssweeper-cli
Version:
CLI tool for detecting and analyzing unused DNS records
53 lines • 2.32 kB
JavaScript
;
/**
* DNSweeper CLI - メインエントリーポイント
* 未使用DNSレコードの検出・分析ツール
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.main = main;
const commander_1 = require("commander");
const chalk_1 = __importDefault(require("chalk"));
const analyze_1 = require("./commands/analyze");
// バージョン情報
const packageJson = require('../package.json');
// メイン関数
async function main() {
try {
// コマンドライン設定
commander_1.program
.name('dnssweeper')
.description('未使用DNSレコードの検出・分析ツール')
.version(packageJson.version);
// analyzeコマンドの追加
commander_1.program
.command('analyze')
.description('CSVファイルを分析して未使用DNSレコードを検出')
.argument('<file>', 'CloudflareからエクスポートしたCSVファイル')
.option('-o, --output <format>', '出力形式 (table, json, csv)', 'table')
.option('-e, --english', '英語で出力')
.option('-v, --verbose', '詳細な出力')
.option('-r, --risk-level <level>', '指定リスクレベル以上のレコードのみ表示 (critical, high, medium, low)')
.option('-f, --output-file <file>', '分析結果を運用フロー対応CSVファイルに出力(月次DNS棚卸し用)')
.action(analyze_1.analyzeCommand);
// 引数なしで実行された場合、ヘルプを表示して正常終了
if (process.argv.length === 2) {
commander_1.program.outputHelp();
process.exit(0);
}
// コマンドラインの解析と実行
await commander_1.program.parseAsync(process.argv);
}
catch (error) {
console.error(chalk_1.default.red('エラー:', error instanceof Error ? error.message : String(error)));
process.exit(1);
}
}
// スクリプトが直接実行された場合のみmain関数を実行
if (require.main === module) {
main();
}
//# sourceMappingURL=index.js.map