import { copyFileSync, chmodSync, mkdirSync, existsSync } from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const root = path.resolve(__dirname, '..'); const hooksDir = path.join(root, '.git', 'hooks'); const src = path.join(root, 'tools', 'hooks', 'pre-commit'); const dest = path.join(hooksDir, 'pre-commit'); if (!existsSync(path.join(root, '.git'))) { console.error('Not a git repository. Run from the repo root.'); process.exit(1); } mkdirSync(hooksDir, { recursive: true }); copyFileSync(src, dest); try { chmodSync(dest, 0o755); } catch { /* Windows */ } console.log('Installed pre-commit hook → .git/hooks/pre-commit');