AbdulElahGwaith's picture
Upload folder using huggingface_hub
88df9e4 verified
import fs from 'fs'
import path from 'path'
import chalk from 'chalk'
import languages from '@/languages/lib/languages-server'
type Options = {
verbose?: boolean
max: number
}
export async function deleteOrphans(filePath: string, options: Options) {
const orphans = JSON.parse(fs.readFileSync(filePath, 'utf8'))
if (!Array.isArray(orphans)) {
throw new Error(`Expected an array of orphans in ${filePath}`)
}
let count = 0
if (options.verbose) {
console.log(chalk.yellow(`${orphans.length} orphans found in ${filePath}`))
if (orphans.length > options.max) {
console.log(chalk.yellow(`Only deleting the first ${options.max} orphans`))
}
}
let countDeletions = 0
for (const orphan of orphans.slice(0, options.max)) {
count++
const absolutePath = path.join(languages.en.dir, orphan)
if (!fs.existsSync(absolutePath)) {
throw new Error(`File does not exist: ${absolutePath} (number ${count} in ${filePath})`)
}
if (options.verbose) {
console.log(chalk.green(`Deleting ${absolutePath}`))
}
fs.unlinkSync(absolutePath)
countDeletions++
}
if (countDeletions > 0) {
console.log(chalk.green(`Deleted ${countDeletions} orphans`))
} else {
console.log(chalk.yellow(`Deleted no orphans`))
}
}