const fs = require('fs')
const path = require('path')

exports.default = async function (context) {
  const platform = context.packager.platform.name

  // 根据平台确定 locales 目录位置
  let resourceDirs = []
  if (platform === 'mac') {
    // macOS 的语言文件位置
    resourceDirs = [
      path.join(context.appOutDir, 'Cherry Studio.app', 'Contents', 'Resources'),
      path.join(
        context.appOutDir,
        'Cherry Studio.app',
        'Contents',
        'Frameworks',
        'Electron Framework.framework',
        'Resources'
      )
    ]
  } else {
    // Windows 和 Linux 的语言文件位置
    resourceDirs = [path.join(context.appOutDir, 'locales')]
  }

  // 处理每个资源目录
  for (const resourceDir of resourceDirs) {
    if (!fs.existsSync(resourceDir)) {
      console.log(`Resource directory not found: ${resourceDir}, skipping...`)
      continue
    }

    // 读取所有文件和目录
    const items = fs.readdirSync(resourceDir)

    // 遍历并删除不需要的语言文件
    for (const item of items) {
      if (platform === 'mac') {
        // 在 macOS 上检查 .lproj 目录
        if (item.endsWith('.lproj') && !item.match(/^(en|zh|ru)/)) {
          const dirPath = path.join(resourceDir, item)
          fs.rmSync(dirPath, { recursive: true, force: true })
          console.log(`Removed locale directory: ${item} from ${resourceDir}`)
        }
      } else {
        // 其他平台处理 .pak 文件
        if (!item.match(/^(en|zh|ru)/)) {
          const filePath = path.join(resourceDir, item)
          fs.unlinkSync(filePath)
          console.log(`Removed locale file: ${item} from ${resourceDir}`)
        }
      }
    }
  }

  console.log('Locale cleanup completed!')
}
