Opt-In Wiki Generation
This commit is contained in:
+24
-14
@@ -135,7 +135,15 @@ func Build(p *project.Project, progress func(string)) (BuildResult, error) {
|
||||
return BuildNative(p, progress)
|
||||
}
|
||||
|
||||
type NativeBuildOptions struct {
|
||||
BuildWiki bool
|
||||
}
|
||||
|
||||
func BuildNative(p *project.Project, progress func(string)) (BuildResult, error) {
|
||||
return BuildNativeWithOptions(p, NativeBuildOptions{BuildWiki: true}, progress)
|
||||
}
|
||||
|
||||
func BuildNativeWithOptions(p *project.Project, opts NativeBuildOptions, progress func(string)) (BuildResult, error) {
|
||||
if progress == nil {
|
||||
progress = func(string) {}
|
||||
}
|
||||
@@ -152,26 +160,28 @@ func BuildNative(p *project.Project, progress func(string)) (BuildResult, error)
|
||||
return BuildResult{}, fmt.Errorf("topdata validation failed with %d error(s)", report.ErrorCount())
|
||||
}
|
||||
var prebuiltWiki *wikiResult
|
||||
if newestWikiSource, _, err := newestRelevantWikiSource(p.TopDataSourceDir()); err == nil && !newestWikiSource.IsZero() {
|
||||
statePath := filepath.Join(p.TopDataSourceDir(), wikiRootDirName, wikiStateFileName)
|
||||
outputDir := filepath.Join(p.TopDataSourceDir(), wikiRootDirName, wikiPagesDirName)
|
||||
if stateInfo, err := os.Stat(statePath); err == nil && !newestWikiSource.After(stateInfo.ModTime()) {
|
||||
if outputInfo, err := os.Stat(outputDir); err == nil && outputInfo.IsDir() {
|
||||
if state, err := loadWikiState(statePath); err == nil {
|
||||
prebuiltWiki = &wikiResult{
|
||||
OutputDir: outputDir,
|
||||
PageCount: state.Pages,
|
||||
Status: wikiSkippedStatus,
|
||||
Digest: state.Digest,
|
||||
if opts.BuildWiki {
|
||||
if newestWikiSource, _, err := newestRelevantWikiSource(p.TopDataSourceDir()); err == nil && !newestWikiSource.IsZero() {
|
||||
statePath := filepath.Join(p.TopDataSourceDir(), wikiRootDirName, wikiStateFileName)
|
||||
outputDir := filepath.Join(p.TopDataSourceDir(), wikiRootDirName, wikiPagesDirName)
|
||||
if stateInfo, err := os.Stat(statePath); err == nil && !newestWikiSource.After(stateInfo.ModTime()) {
|
||||
if outputInfo, err := os.Stat(outputDir); err == nil && outputInfo.IsDir() {
|
||||
if state, err := loadWikiState(statePath); err == nil {
|
||||
prebuiltWiki = &wikiResult{
|
||||
OutputDir: outputDir,
|
||||
PageCount: state.Pages,
|
||||
Status: wikiSkippedStatus,
|
||||
Digest: state.Digest,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return buildNativeUnchecked(p, progress, prebuiltWiki)
|
||||
return buildNativeUnchecked(p, opts, progress, prebuiltWiki)
|
||||
}
|
||||
|
||||
func buildNativeUnchecked(p *project.Project, progress func(string), prebuiltWiki *wikiResult) (BuildResult, error) {
|
||||
func buildNativeUnchecked(p *project.Project, opts NativeBuildOptions, progress func(string), prebuiltWiki *wikiResult) (BuildResult, error) {
|
||||
if progress == nil {
|
||||
progress = func(string) {}
|
||||
}
|
||||
@@ -333,7 +343,7 @@ func buildNativeUnchecked(p *project.Project, progress func(string), prebuiltWik
|
||||
wikiBuild := wikiResult{Status: wikiSkippedStatus}
|
||||
if prebuiltWiki != nil {
|
||||
wikiBuild = *prebuiltWiki
|
||||
} else {
|
||||
} else if opts.BuildWiki {
|
||||
wikiBuild, err = buildWiki(p, BuildResult{
|
||||
Mode: "native",
|
||||
Output2DADir: output2DA,
|
||||
|
||||
Reference in New Issue
Block a user