Add printing config

Signed-off-by: kolaente <k@knt.li>
This commit is contained in:
kolaente 2020-10-13 20:40:56 +02:00
parent 48f0436954
commit 613d1706d8
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 25 additions and 25 deletions

View File

@ -740,7 +740,7 @@ type configOption struct {
children []*configOption
}
func parseYamlNode(node *yaml.Node) (config *configOption) {
func parseYamlConfigNode(node *yaml.Node) (config *configOption) {
config = &configOption{
key: node.Value,
description: node.HeadComment,
@ -765,7 +765,7 @@ func parseYamlNode(node *yaml.Node) (config *configOption) {
if len(n2.Content) > 0 {
for _, n := range n2.Content {
coo.children = append(coo.children, parseYamlNode(n))
coo.children = append(coo.children, parseYamlConfigNode(n))
}
}
}
@ -773,6 +773,27 @@ func parseYamlNode(node *yaml.Node) (config *configOption) {
return config
}
func printConfig(config []*configOption, level int) (rendered string) {
for _, option := range config {
if option.key != "" {
for i := 0; i <= level; i++ {
rendered += "#"
}
rendered += " " + option.key + "\n"
if option.description != "" {
rendered += "\n\n" + option.description + "\n\n"
}
rendered += "Default: `" + option.defaultValue + "`\n"
}
rendered += "\n" + printConfig(option.children, level+1)
}
return
}
// Generates the error docs from a commented config.yml.sample file in the repo root.
func GenerateDocs() error {
@ -791,33 +812,12 @@ func GenerateDocs() error {
for _, node := range d.Content {
for _, n := range node.Content {
co := parseYamlNode(n)
co := parseYamlConfigNode(n)
conf = append(conf, co)
}
}
for _, option := range conf {
if option.key != "" {
fmt.Printf("Option: %s\n", option.key)
if option.description != "" {
fmt.Printf("Description: %s\n", option.description)
}
}
for _, child := range option.children {
if child.key != "" {
// TODO: Add generating docs from recursive structure
fmt.Printf("[Child] Option: %s, Default: %s\n", child.key, child.defaultValue)
if child.description != "" {
fmt.Printf("[Child] Description: %s\n", child.description)
}
}
}
}
fmt.Println(printConfig(conf, 0))
return nil
}