doctor: build dependencies (JDK with the version the project needs, Android SDK command-line tools, CocoaPods, Node, Bun, bundletool), too-old status, doctor --install <tool> --yes runs the package-manager command (never sudo); desktop Dependencies shows too old; gen-flags works on Windows paths

This commit is contained in:
CRTkafa 2026-10-22 02:21:26 +08:00
parent a8a889fb35
commit 2598c4953a
10 changed files with 137 additions and 14 deletions

View file

@ -543,6 +543,7 @@ export const en = {
'deps.tools': 'Tools on this computer',
'deps.found': '{found} of {total} found',
'deps.missing': 'Missing',
'deps.outdated': 'Too old (needs {version})',
'deps.appCopy': 'App copy',
'deps.installed': 'Installed',
'deps.download': 'Download',

View file

@ -545,6 +545,7 @@ export const tr: Record<keyof typeof en, string> = {
'deps.tools': 'Bu bilgisayardaki araçlar',
'deps.found': '{total} araçtan {found} tanesi var',
'deps.missing': 'Eksik',
'deps.outdated': 'Eski (gereken {version})',
'deps.appCopy': 'Uygulamanın kopyası',
'deps.installed': 'Kurulu',
'deps.download': 'İndir',

View file

@ -15,6 +15,7 @@ const TOOL_ICON: Record<string, IconName> = { ffmpeg: 'image', ffprobe: 'search'
/** Status chip of one tool. */
export function toolState(x: ToolStatus): { text: string; tone: 'ok' | 'warn' | 'accent' } {
if (!x.found) return { text: t('deps.missing'), tone: 'warn' };
if (x.status === 'outdated') return { text: t('deps.outdated', { version: x.required ?? '' }), tone: 'warn' };
return x.source === 'app' ? { text: t('deps.appCopy'), tone: 'accent' } : { text: t('deps.installed'), tone: 'ok' };
}