Add vintner doctor for diagnosing a broken wine/toolchain setup

A misconfigured environment (wine missing, msitools not installed, a
partially-built toolchain) otherwise only surfaces as a wine-specific
error buried deep inside a build. `vintner doctor` checks wine itself
(found and actually runs), the optional extraction tools download
needs, and every installed <dest>/bin/<arch> toolchain's on-disk
layout, printing a pass/fail checklist and exiting non-zero if
anything's broken.
This commit is contained in:
Cheviiot
2026-07-25 18:14:47 +10:00
parent b366dfa9ac
commit 5cf52c9f9f
6 changed files with 321 additions and 4 deletions
+2 -1
View File
@@ -49,7 +49,7 @@ const downloadFlags = "--dest --cache --major --preview --manifest --accept-lice
// plus every short alias) - unlike the wrapped-tool names, these really are
// fixed enough to hand-maintain: adding one is rare and always touches
// main.go's dispatch switch right next to this file anyway.
const subcommandNames = "download dl install i env e version v help h completion"
const subcommandNames = "download dl install i env e version v doctor help h completion"
func bashCompletionScript() string {
return `# vintner bash completion - eval "$(vintner completion bash)"
@@ -104,6 +104,7 @@ _vintner() {
'e:alias for env'
'version:print the version'
'v:alias for version'
'doctor:check wine/toolchain setup'
'help:print usage'
'h:alias for help'
'completion:print a shell completion script'