Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

expose RenderedProviderName to templating #149

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,10 @@ BUG FIXES:

* cmd/tfplugindocs: Allow single word resources to use templates ([147](https://github.com/hashicorp/terraform-plugin-docs/pull/147)).

ENHANCEMENTS:

* cmd/tfplugindocs: Expose `RenderedProviderName` to templates ([#149](https://github.com/hashicorp/terraform-plugin-docs/pull/149)).

# 0.9.0 (June 1, 2022)

NEW FEATURES:
Expand Down
12 changes: 7 additions & 5 deletions internal/provider/generate.go
Expand Up @@ -255,7 +255,7 @@ func (g *generator) renderMissingResourceDoc(providerName, name, typeName string
}

g.infof("generating template for %q", name)
md, err := targetResourceTemplate.Render(name, providerName, typeName, examplePath, importPath, schema)
md, err := targetResourceTemplate.Render(name, providerName, g.renderedProviderName, typeName, examplePath, importPath, schema)
if err != nil {
return fmt.Errorf("unable to render template for %q: %w", name, err)
}
Expand Down Expand Up @@ -303,7 +303,7 @@ func (g *generator) renderMissingProviderDoc(providerName string, schema *tfjson
}

g.infof("generating template for %q", providerName)
md, err := defaultProviderTemplate.Render(providerName, examplePath, schema)
md, err := defaultProviderTemplate.Render(providerName, g.renderedProviderName, examplePath, schema)
if err != nil {
return fmt.Errorf("unable to render template for %q: %w", providerName, err)
}
Expand Down Expand Up @@ -420,7 +420,7 @@ func (g *generator) renderStaticWebsite(providerName string, providerSchema *tfj
}

tmpl := resourceTemplate(tmplData)
render, err := tmpl.Render(resName, providerName, "Data Source", "", "", resSchema)
render, err := tmpl.Render(resName, providerName, g.renderedProviderName, "Data Source", "", "", resSchema)
if err != nil {
return fmt.Errorf("unable to render data source template %q: %w", rel, err)
}
Expand All @@ -430,13 +430,15 @@ func (g *generator) renderStaticWebsite(providerName string, providerSchema *tfj
}
return nil
case "resources/":
// spew.Dump(providerSchema.ResourceSchemas, shortName)
resSchema, resName := resourceSchema(providerSchema.ResourceSchemas, shortName, relFile)
// spew.Dump(resName, resSchema)
if resSchema == nil {
return fmt.Errorf("unable to find resource for provider (%s) and template (%s)", shortName, relFile)
}

tmpl := resourceTemplate(tmplData)
render, err := tmpl.Render(resName, providerName, "Resource", "", "", resSchema)
render, err := tmpl.Render(resName, providerName, g.renderedProviderName, "Resource", "", "", resSchema)
if err != nil {
return fmt.Errorf("unable to render resource template %q: %w", rel, err)
}
Expand All @@ -448,7 +450,7 @@ func (g *generator) renderStaticWebsite(providerName string, providerSchema *tfj
case "": // provider
if relFile == "index.md.tmpl" {
tmpl := providerTemplate(tmplData)
render, err := tmpl.Render(providerName, "", providerSchema.ConfigSchema)
render, err := tmpl.Render(providerName, g.renderedProviderName, "", providerSchema.ConfigSchema)
if err != nil {
return fmt.Errorf("unable to render provider template %q: %w", rel, err)
}
Expand Down
12 changes: 10 additions & 2 deletions internal/provider/template.go
Expand Up @@ -118,7 +118,7 @@ func (t providerFileTemplate) Render(name string) (string, error) {
}{name, providerShortName(name)})
}

func (t providerTemplate) Render(providerName, exampleFile string, schema *tfjson.Schema) (string, error) {
func (t providerTemplate) Render(providerName, renderedProviderName, exampleFile string, schema *tfjson.Schema) (string, error) {
schemaBuffer := bytes.NewBuffer(nil)
err := schemamd.Render(schema, schemaBuffer)
if err != nil {
Expand All @@ -144,6 +144,8 @@ func (t providerTemplate) Render(providerName, exampleFile string, schema *tfjso
ProviderShortName string

SchemaMarkdown string

RenderedProviderName string
}{
Description: schema.Block.Description,

Expand All @@ -154,10 +156,12 @@ func (t providerTemplate) Render(providerName, exampleFile string, schema *tfjso
ProviderShortName: providerShortName(providerName),

SchemaMarkdown: schemaComment + "\n" + schemaBuffer.String(),

RenderedProviderName: renderedProviderName,
})
}

func (t resourceTemplate) Render(name, providerName, typeName, exampleFile, importFile string, schema *tfjson.Schema) (string, error) {
func (t resourceTemplate) Render(name, providerName, renderedProviderName, typeName, exampleFile, importFile string, schema *tfjson.Schema) (string, error) {
schemaBuffer := bytes.NewBuffer(nil)
err := schemamd.Render(schema, schemaBuffer)
if err != nil {
Expand All @@ -184,6 +188,8 @@ func (t resourceTemplate) Render(name, providerName, typeName, exampleFile, impo
ProviderShortName string

SchemaMarkdown string

RenderedProviderName string
}{
Type: typeName,
Name: name,
Expand All @@ -199,6 +205,8 @@ func (t resourceTemplate) Render(name, providerName, typeName, exampleFile, impo
ProviderShortName: providerShortName(providerName),

SchemaMarkdown: schemaComment + "\n" + schemaBuffer.String(),

RenderedProviderName: renderedProviderName,
})
}

Expand Down