import * as fs from 'fs';
import * as path from 'path';

function copyDirRecursive(source: string, target: string) {
  // 创建目标目录
  if (!fs.existsSync(target)) {
    fs.mkdirSync(target, { recursive: true });
  }

  // 读取源目录内容
  const files = fs.readdirSync(source);

  for (const file of files) {
    const sourcePath = path.join(source, file);
    const targetPath = path.join(target, file);

    const stat = fs.statSync(sourcePath);

    if (stat.isDirectory()) {
      // 如果是目录，递归复制
      copyDirRecursive(sourcePath, targetPath);
    } else {
      // 如果是文件，复制文件
      fs.copyFileSync(sourcePath, targetPath);
    }
  }
}

function copyMathJax() {
  const sourceDir = path.join(process.cwd(), 'node_modules', 'mathjax-full');
  const targetDir = path.join(process.cwd(), 'static', 'node_modules', 'mathjax-full');

  console.log('开始复制 MathJax...');
  console.log('源目录:', sourceDir);
  console.log('目标目录:', targetDir);

  try {
    // 检查源目录是否存在
    if (!fs.existsSync(sourceDir)) {
      console.error('错误: mathjax-full 目录不存在，请先安装 mathjax-full');
      console.log('运行: bun install mathjax-full');
      return;
    }

    // 如果目标目录已存在，就退出
    if (fs.existsSync(targetDir)) {
      console.log('目标目录已存在，跳过复制');
      return;
    }

    // 复制目录
    copyDirRecursive(sourceDir, targetDir);
    console.log('✅ MathJax 复制完成!');

  } catch (error) {
    console.error('❌ 复制过程中发生错误:', error);
  }
}

// 运行复制函数
copyMathJax();