#!/usr/bin/env tsx /** * Copy HOOK.md files from src/hooks/bundled to dist/hooks/bundled */ import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const projectRoot = path.resolve(__dirname, '..'); const srcBundled = path.join(projectRoot, 'src', 'hooks', 'bundled'); const distBundled = path.join(projectRoot, 'dist', 'hooks', 'bundled'); function copyHookMetadata() { if (!fs.existsSync(srcBundled)) { console.warn('[copy-hook-metadata] Source directory not found:', srcBundled); return; } if (!fs.existsSync(distBundled)) { fs.mkdirSync(distBundled, { recursive: true }); } const entries = fs.readdirSync(srcBundled, { withFileTypes: true }); for (const entry of entries) { if (!entry.isDirectory()) continue; const hookName = entry.name; const srcHookDir = path.join(srcBundled, hookName); const distHookDir = path.join(distBundled, hookName); const srcHookMd = path.join(srcHookDir, 'HOOK.md'); const distHookMd = path.join(distHookDir, 'HOOK.md'); if (!fs.existsSync(srcHookMd)) { console.warn(`[copy-hook-metadata] No HOOK.md found for ${hookName}`); continue; } if (!fs.existsSync(distHookDir)) { fs.mkdirSync(distHookDir, { recursive: true }); } fs.copyFileSync(srcHookMd, distHookMd); console.log(`[copy-hook-metadata] Copied ${hookName}/HOOK.md`); } console.log('[copy-hook-metadata] Done'); } copyHookMetadata();