mirror of
https://github.com/Lifeforge-app/lifeforge.git
synced 2026-03-03 03:07:01 +00:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { confirmAction, executeCommand } from '@/utils/helpers'
|
|
import CLILoggingService from '@/utils/logging'
|
|
|
|
import { checkAuth } from '../../../utils/registry'
|
|
import getLocalesMeta from '../functions/getLocalesMeta'
|
|
import getPackagesToCheck from '../functions/getPackagesToCheck'
|
|
import getUpgrades from '../functions/getUpgrades'
|
|
import installAndMoveLocales from '../functions/installAndMoveLocales'
|
|
|
|
export async function upgradeLocaleHandler(langCode?: string): Promise<void> {
|
|
const packagesToCheck = getPackagesToCheck(langCode)
|
|
|
|
const upgrades = await getUpgrades(packagesToCheck)
|
|
|
|
if (!(await confirmAction('Proceed with upgrades?'))) return
|
|
|
|
await checkAuth()
|
|
|
|
let upgradedCount = 0
|
|
|
|
for (const upgrade of upgrades) {
|
|
try {
|
|
installAndMoveLocales(
|
|
upgrade.name,
|
|
getLocalesMeta(upgrade.name).targetDir
|
|
)
|
|
|
|
CLILoggingService.success(`Upgraded ${upgrade.name} to ${upgrade.latest}`)
|
|
upgradedCount++
|
|
} catch (error) {
|
|
CLILoggingService.error(`Failed to upgrade ${upgrade.name}: ${error}`)
|
|
}
|
|
}
|
|
|
|
if (upgradedCount > 0) {
|
|
executeCommand('bun install', { cwd: process.cwd(), stdio: 'inherit' })
|
|
CLILoggingService.success(`Upgraded ${upgradedCount} locale(s)`)
|
|
}
|
|
}
|