Skip to content

Commit 93aa7d3

Browse files
authored
generate: Remove only tfplugindocs managed files and subdirectories from rendered website directory (#267)
* Introduce exclude-rendered-website-sub-dir flag * Add "cdktf" to list of allowed directories * Add Changie entry * Revert `exclude-rendered-website-sub-dir` flag and only remove files and directories directly managed by `tfplugindocs` * Merge branch 'main' into SBGoods/skip-subdir
1 parent 66368e3 commit 93aa7d3

File tree

6 files changed

+54
-4
lines changed

6 files changed

+54
-4
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
kind: ENHANCEMENTS
2+
body: 'generate: Prevent files and subdirectories in the rendered website directory
3+
that are not directly managed by `tfplugindocs` from being deleted during generation'
4+
time: 2023-06-29T14:41:19.134991-04:00
5+
custom:
6+
Issue: "267"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
kind: ENHANCEMENTS
2+
body: 'validate: Add `cdktf` to list of allowed rendered website subdirectories'
3+
time: 2023-07-06T11:14:27.351158-04:00
4+
custom:
5+
Issue: "267"

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ require (
1212
github.com/mitchellh/cli v1.1.5
1313
github.com/russross/blackfriday v1.6.0
1414
github.com/zclconf/go-cty v1.13.2
15+
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df
1516
golang.org/x/text v0.11.0
1617
)
1718

@@ -40,6 +41,6 @@ require (
4041
github.com/shopspring/decimal v1.3.1 // indirect
4142
github.com/spf13/cast v1.5.0 // indirect
4243
golang.org/x/crypto v0.8.0 // indirect
43-
golang.org/x/mod v0.10.0 // indirect
44+
golang.org/x/mod v0.11.0 // indirect
4445
golang.org/x/sys v0.7.0 // indirect
4546
)

go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,10 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh
118118
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
119119
golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
120120
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
121-
golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
122-
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
121+
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME=
122+
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
123+
golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU=
124+
golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
123125
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
124126
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
125127
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=

internal/provider/generate.go

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99
"os"
1010
"os/exec"
11+
"path"
1112
"path/filepath"
1213
"runtime"
1314
"strings"
@@ -22,6 +23,7 @@ import (
2223
"github.com/hashicorp/terraform-exec/tfexec"
2324
tfjson "github.com/hashicorp/terraform-json"
2425
"github.com/mitchellh/cli"
26+
"golang.org/x/exp/slices"
2527
)
2628

2729
var (
@@ -63,6 +65,16 @@ var (
6365
providerFileTemplate("index.html.markdown"),
6466
providerFileTemplate("index.html.md"),
6567
}
68+
69+
managedWebsiteSubDirectories = []string{
70+
"data-sources",
71+
"guides",
72+
"resources",
73+
}
74+
75+
managedWebsiteFiles = []string{
76+
"index.md",
77+
}
6678
)
6779

6880
type generator struct {
@@ -416,11 +428,34 @@ func (g *generator) renderMissingDocs(providerName string, providerSchema *tfjso
416428

417429
func (g *generator) renderStaticWebsite(providerName string, providerSchema *tfjson.ProviderSchema) error {
418430
g.infof("cleaning rendered website dir")
419-
err := os.RemoveAll(g.ProviderDocsDir())
431+
dirEntry, err := os.ReadDir(g.ProviderDocsDir())
420432
if err != nil {
421433
return err
422434
}
423435

436+
for _, file := range dirEntry {
437+
438+
// Remove subdirectories managed by tfplugindocs
439+
if file.IsDir() && slices.Contains(managedWebsiteSubDirectories, file.Name()) {
440+
g.infof("removing directory: %q", file.Name())
441+
err = os.RemoveAll(path.Join(g.ProviderDocsDir(), file.Name()))
442+
if err != nil {
443+
return err
444+
}
445+
continue
446+
}
447+
448+
// Remove files managed by tfplugindocs
449+
if !file.IsDir() && slices.Contains(managedWebsiteFiles, file.Name()) {
450+
g.infof("removing file: %q", file.Name())
451+
err = os.RemoveAll(path.Join(g.ProviderDocsDir(), file.Name()))
452+
if err != nil {
453+
return err
454+
}
455+
continue
456+
}
457+
}
458+
424459
shortName := providerShortName(providerName)
425460

426461
g.infof("rendering templated website to static markdown")

internal/provider/validate.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ func validateStaticDocs(ui cli.Ui, dir string) error {
9898
"data-sources",
9999
"guides",
100100
"resources",
101+
"cdktf",
101102
),
102103
checkBlockedExtensions(
103104
".html.md.tmpl",

0 commit comments

Comments
 (0)