Skip to content

Commit

Permalink
add script to remove stale translation files (github#22555)
Browse files Browse the repository at this point in the history
rachmari authored Nov 5, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 3499d5e commit 8c7deeb
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions script/i18n/prune-stale-files.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/usr/bin/env node
import fs from 'fs'
import path from 'path'
import walk from 'walk-sync'
import program from 'commander'
import languages from '../../lib/languages.js'

program
.description(
`Removes any file in the translations directory that doesn't have a 1-1 mapping with an English file in the content directory`
)
.option('-d, --dry-run', `List the files that will be deleted, but don't remove them).`)
.parse(process.argv)

const languageDir = Object.keys(languages)
.filter((language) => !languages[language].wip && language !== 'en')
.map((language) => languages[language].dir)

main()

async function main() {
const listOfContentFiles = walk(path.join(process.cwd(), 'content'), {
includeBasePath: false,
directories: false,
})

const translatedFilePaths = []
languageDir.forEach((directory) => {
const listOfFiles = walk(path.join(directory, 'content'), {
includeBasePath: true,
directories: false,
}).map((path) => path.replace(process.cwd(), ''))
translatedFilePaths.push(...listOfFiles)
})

let outOfSyncFilesCount = 0
translatedFilePaths.forEach((translatedFilePath) => {
const translationRelativePath = translatedFilePath.split('/content/')[1]

// If there is a 1:1 mapping of translated file to english file
// we're in sync, don't log
if (listOfContentFiles.includes(translationRelativePath)) {
return
}

outOfSyncFilesCount++
if (!program.opts().dryRun) {
fs.unlinkSync(translatedFilePath)
} else {
console.log(translatedFilePath)
}
})

console.log(`Out of sync file size: ${outOfSyncFilesCount}`)
}

0 comments on commit 8c7deeb

Please sign in to comment.