| #!/usr/bin/env tsx |
| |
| |
| |
|
|
| 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(); |
|
|