diff --git a/internal/provider/generate.go b/internal/provider/generate.go index 2cb43d5b..7dfd1803 100644 --- a/internal/provider/generate.go +++ b/internal/provider/generate.go @@ -5,6 +5,7 @@ package provider import ( "context" + "encoding/json" "fmt" "os" "os/exec" @@ -273,6 +274,13 @@ func (g *generator) Generate(ctx context.Context) error { return fmt.Errorf("error rendering static website: %w", err) } + g.infof("writing provider schema") + err = g.writeProviderSchema(providerSchema) + if err != nil { + return fmt.Errorf("error writing provider schema: %w", err) + + } + return nil } @@ -1049,6 +1057,22 @@ func (g *generator) renderStaticWebsite(providerSchema *tfjson.ProviderSchema) e return nil } +func (g *generator) writeProviderSchema(providerSchema *tfjson.ProviderSchema) error { + path := filepath.Join(g.ProviderDocsDir(), "schema.json") + f, err := os.Create(path) + if err != nil { + return fmt.Errorf("writeProviderSchema: error on file open for write: %w", err) + } + + encoder := json.NewEncoder(f) + err = encoder.Encode(providerSchema) + if err != nil { + return fmt.Errorf("writeProviderSchema: error on JSON encode to file: %w", err) + } + + return nil +} + func (g *generator) terraformProviderSchemaFromTerraform(ctx context.Context) (*tfjson.ProviderSchema, error) { var err error