#!/usr/bin/env node

// [start-readme]
//
// This script copies any English files that are missing from the translations directory into the translations directory.
// We only need to run this if problems occur with Crowdin's automatic sync.
//
// [end-readme]

import { fileURLToPath } from 'url'
import path from 'path'
import fs from 'fs'
import walk from 'walk-sync'
import mkdirp from 'mkdirp'
import languages from '../lib/languages.js'

const __dirname = path.dirname(fileURLToPath(import.meta.url))
const dirs = ['content', 'data']

for (const dir of dirs) {
  const englishPath = path.join(__dirname, `../${dir}`)
  const filenames = walk(englishPath).filter((filename) => {
    return (
      (filename.endsWith('.yml') || filename.endsWith('.md')) && !filename.endsWith('README.md')
    )
  })

  for (const filename of filenames) {
    for (const language of Object.values(languages)) {
      if (language.code === 'en') continue
      const fullPath = path.join(__dirname, '..', language.dir, dir, filename)
      if (!fs.existsSync(fullPath)) {
        console.log('missing', fullPath)
        const englishFullPath = path.join(__dirname, '..', dir, filename)
        await mkdirp(path.dirname(fullPath))
        fs.writeFileSync(fullPath, fs.readFileSync(englishFullPath))
      }
    }
  }
}