feat: add internal hooks system
This commit is contained in:
53
scripts/copy-hook-metadata.ts
Normal file
53
scripts/copy-hook-metadata.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/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();
|
||||
Reference in New Issue
Block a user