Skip to content

Commit

Permalink
expose RenderedProviderName to templating
Browse files Browse the repository at this point in the history
Updates the templating variables to include `RenderedProviderName` which is the
value from `--rendered-provider-name` when invoking `generate`.
  • Loading branch information
jacobbednarz committed Jun 13, 2022
1 parent cbd432b commit a4c3a9b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 7 deletions.
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

0 comments on commit a4c3a9b

Please sign in to comment.