From 89ca8dbe14d28a6d7ac24a845c52daa1ef64c7c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lapeyre?= Date: Sun, 19 Jun 2022 23:50:49 +0200 Subject: [PATCH 1/2] Add option to ignore deprecated resources and data-sources --- internal/cmd/generate.go | 5 ++++- internal/provider/generate.go | 20 +++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/internal/cmd/generate.go b/internal/cmd/generate.go index a48a94a2..54e4d201 100644 --- a/internal/cmd/generate.go +++ b/internal/cmd/generate.go @@ -11,7 +11,8 @@ import ( type generateCmd struct { commonCmd - flagLegacySidebar bool + flagLegacySidebar bool + flagIgnoreDeprecated bool flagProviderName string flagRenderedProviderName string @@ -75,6 +76,7 @@ func (cmd *generateCmd) Flags() *flag.FlagSet { fs.StringVar(&cmd.flagWebsiteTmpDir, "website-temp-dir", "", "temporary directory (used during generation)") fs.StringVar(&cmd.flagWebsiteSourceDir, "website-source-dir", "templates", "templates directory") fs.StringVar(&cmd.tfVersion, "tf-version", "", "terraform binary version to download") + fs.BoolVar(&cmd.flagIgnoreDeprecated, "ignore-deprecated", false, "don't generate documentation for deprecated resources and data-sources") return fs } @@ -100,6 +102,7 @@ func (cmd *generateCmd) runInternal() error { cmd.flagWebsiteTmpDir, cmd.flagWebsiteSourceDir, cmd.tfVersion, + cmd.flagIgnoreDeprecated, ) if err != nil { return fmt.Errorf("unable to generate website: %w", err) diff --git a/internal/provider/generate.go b/internal/provider/generate.go index f9fed5f8..c7cb12d4 100644 --- a/internal/provider/generate.go +++ b/internal/provider/generate.go @@ -64,8 +64,9 @@ var ( ) type generator struct { - legacySidebar bool - tfVersion string + ignoreDeprecated bool + legacySidebar bool + tfVersion string providerName string renderedProviderName string @@ -85,10 +86,11 @@ func (g *generator) warnf(format string, a ...interface{}) { g.ui.Warn(fmt.Sprintf(format, a...)) } -func Generate(ui cli.Ui, legacySidebar bool, providerName, renderedProviderName, renderedWebsiteDir, examplesDir, websiteTmpDir, websiteSourceDir, tfVersion string) error { +func Generate(ui cli.Ui, legacySidebar bool, providerName, renderedProviderName, renderedWebsiteDir, examplesDir, websiteTmpDir, websiteSourceDir, tfVersion string, ignoreDeprecated bool) error { g := &generator{ - legacySidebar: legacySidebar, - tfVersion: tfVersion, + ignoreDeprecated: ignoreDeprecated, + legacySidebar: legacySidebar, + tfVersion: tfVersion, providerName: providerName, renderedProviderName: renderedProviderName, @@ -319,6 +321,10 @@ func (g *generator) renderMissingProviderDoc(providerName string, schema *tfjson func (g *generator) renderMissingDocs(providerName string, providerSchema *tfjson.ProviderSchema) error { g.infof("generating missing resource content") for name, schema := range providerSchema.ResourceSchemas { + if g.ignoreDeprecated && schema.Block.Deprecated { + continue + } + err := g.renderMissingResourceDoc(providerName, name, "Resource", schema, websiteResourceFileTemplate, websiteResourceFallbackFileTemplate, @@ -332,6 +338,10 @@ func (g *generator) renderMissingDocs(providerName string, providerSchema *tfjso g.infof("generating missing data source content") for name, schema := range providerSchema.DataSourceSchemas { + if g.ignoreDeprecated && schema.Block.Deprecated { + continue + } + err := g.renderMissingResourceDoc(providerName, name, "Data Source", schema, websiteDataSourceFileTemplate, websiteDataSourceFallbackFileTemplate, From 1ec06fff980533e8b41586e984b08db5ebc49216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lapeyre?= Date: Mon, 27 Jun 2022 22:19:15 +0200 Subject: [PATCH 2/2] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cc8e495..10de8757 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # 0.10.2 (Unreleased) +NEW FEATURES: + +* cmd/tfplugindocs: Additional CLI argument `ignore-deprecated` allows to skip deprecated resources and data-sources when generating docs ([#154](https://github.com/hashicorp/terraform-plugin-docs/pull/154)). + BUG FIXES: * cmd/tfplugindocs: Pass through filepaths for `examples` and `import` to allow use of `HasExample` and `HasImport` template helpers in custom templates ([#155](https://github.com/hashicorp/terraform-plugin-docs/pull/155)).