Add build-wiki command for isolated wiki generation

- Add BuildWikiWithOptions in native.go for building wiki from pre-existing topdata
- Add runBuildWiki and parseBuildWikiArgs in app.go for CLI integration
- Add --force flag to force rebuild even when output is current
This commit is contained in:
2026-04-18 11:13:25 +02:00
parent b6ed92e3e8
commit c52311ce5f
2 changed files with 80 additions and 0 deletions
+35
View File
@@ -139,6 +139,41 @@ type NativeBuildOptions struct {
BuildWiki bool
}
type BuildWikiOptions struct {
Force bool
}
func BuildWikiWithOptions(p *project.Project, opts BuildWikiOptions, progress func(string)) (wikiResult, error) {
if progress == nil {
progress = func(string) {}
}
if !p.HasTopData() {
return wikiResult{}, errors.New("topdata is not configured for this project")
}
output2DA := compiled2DAOutputDir(p)
outputTLK := compiledTLKOutputDir(p)
if _, err := os.Stat(output2DA); os.IsNotExist(err) {
return wikiResult{}, fmt.Errorf("topdata build output missing: run build-topdata first")
}
if _, err := os.Stat(outputTLK); os.IsNotExist(err) {
return wikiResult{}, fmt.Errorf("topdata tlk output missing: run build-topdata first")
}
nativeResult := BuildResult{
Mode: "native",
Output2DADir: output2DA,
OutputTLKDir: outputTLK,
}
wikiBuild, err := buildWiki(p, nativeResult, progress)
if err != nil {
return wikiResult{}, err
}
return wikiBuild, nil
}
func BuildNative(p *project.Project, progress func(string)) (BuildResult, error) {
return BuildNativeWithOptions(p, NativeBuildOptions{BuildWiki: true}, progress)
}