Documentation
¶
Overview ¶
Package markparsr provides utilities for validating Terraform module documentation.
Index ¶
- type ComparisonValidator
- type DocumentParser
- type ErrorCollector
- type FileReader
- type FileValidator
- type HCLParser
- type ItemValidator
- type MarkdownContent
- func (mc *MarkdownContent) ExtractResourcesAndDataSources() ([]string, []string, error)
- func (mc *MarkdownContent) ExtractSectionItems(sectionNames ...string) []string
- func (mc *MarkdownContent) GetAllSections() []string
- func (mc *MarkdownContent) GetContent() string
- func (mc *MarkdownContent) HasSection(sectionName string) bool
- type MarkdownFormat
- type Option
- type Options
- type ReadmeValidator
- type ResourceDocumentExtractor
- type ResourceExtractor
- type SectionExtractor
- type SectionValidator
- type StringUtils
- type TerraformContent
- type TerraformDefinitionValidator
- type URLValidator
- type Validator
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComparisonValidator ¶ added in v1.22.0
type ComparisonValidator interface {
ValidateItems(tfItems, mdItems []string, itemType string) []error
}
func NewComparisonValidator ¶ added in v1.22.0
func NewComparisonValidator() ComparisonValidator
Example ¶
tfItems := []string{"var1", "var2"}
mdItems := []string{"var1", "var3"}
validator := NewComparisonValidator()
errs := validator.ValidateItems(tfItems, mdItems, "Variables")
for _, err := range errs {
fmt.Println(err)
}
type DocumentParser ¶ added in v1.22.0
type ErrorCollector ¶ added in v1.22.0
type ErrorCollector struct {
// contains filtered or unexported fields
}
func (*ErrorCollector) Add ¶ added in v1.22.0
func (c *ErrorCollector) Add(err error)
func (*ErrorCollector) AddMany ¶ added in v1.22.0
func (c *ErrorCollector) AddMany(errs []error)
func (*ErrorCollector) Errors ¶ added in v1.22.0
func (c *ErrorCollector) Errors() []error
func (*ErrorCollector) HasErrors ¶ added in v1.22.0
func (c *ErrorCollector) HasErrors() bool
type FileReader ¶ added in v1.22.0
type FileValidator ¶
type FileValidator struct {
// contains filtered or unexported fields
}
func NewFileValidator ¶
func NewFileValidator(readmePath string, modulePath string, additionalFiles []string) *FileValidator
func (*FileValidator) Validate ¶
func (fv *FileValidator) Validate() []error
type ItemValidator ¶
type ItemValidator struct {
// contains filtered or unexported fields
}
func NewItemValidator ¶
func NewItemValidator(markdown *MarkdownContent, terraform *TerraformContent, itemType, blockType string, sections []string, fileName string) *ItemValidator
func (*ItemValidator) Validate ¶
func (iv *ItemValidator) Validate() []error
type MarkdownContent ¶
type MarkdownContent struct {
// contains filtered or unexported fields
}
func NewMarkdownContent ¶
func NewMarkdownContent(data string, format MarkdownFormat, providerPrefixes []string) *MarkdownContent
func (*MarkdownContent) ExtractResourcesAndDataSources ¶
func (mc *MarkdownContent) ExtractResourcesAndDataSources() ([]string, []string, error)
func (*MarkdownContent) ExtractSectionItems ¶
func (mc *MarkdownContent) ExtractSectionItems(sectionNames ...string) []string
func (*MarkdownContent) GetAllSections ¶
func (mc *MarkdownContent) GetAllSections() []string
func (*MarkdownContent) GetContent ¶
func (mc *MarkdownContent) GetContent() string
func (*MarkdownContent) HasSection ¶
func (mc *MarkdownContent) HasSection(sectionName string) bool
type MarkdownFormat ¶
type MarkdownFormat string
const (
FormatDocument MarkdownFormat = "document"
)
type Option ¶
type Option func(*Options)
func WithAdditionalFiles ¶
func WithAdditionalSections ¶
func WithFormat ¶
func WithFormat(format MarkdownFormat) Option
func WithProviderPrefixes ¶ added in v1.21.0
func WithRelativeReadmePath ¶
type Options ¶
type Options struct {
Format MarkdownFormat
AdditionalSections []string
AdditionalFiles []string
ReadmePath string
ProviderPrefixes []string
}
type ReadmeValidator ¶
type ReadmeValidator struct {
// contains filtered or unexported fields
}
func NewReadmeValidator ¶
func NewReadmeValidator(opts ...Option) (*ReadmeValidator, error)
func (*ReadmeValidator) GetFormat ¶
func (rv *ReadmeValidator) GetFormat() MarkdownFormat
func (*ReadmeValidator) Validate ¶
func (rv *ReadmeValidator) Validate() []error
type ResourceDocumentExtractor ¶ added in v1.22.0
type ResourceExtractor ¶ added in v1.22.0
type SectionExtractor ¶ added in v1.22.0
type SectionValidator ¶
type SectionValidator struct {
// contains filtered or unexported fields
}
func NewSectionValidator ¶
func NewSectionValidator(content *MarkdownContent, additionalSections []string) *SectionValidator
func (*SectionValidator) Validate ¶
func (sv *SectionValidator) Validate() []error
type StringUtils ¶ added in v1.22.0
type StringUtils interface {
LevenshteinDistance(s1, s2 string) int
IsSimilarSection(found, expected string) bool
}
func NewStringUtils ¶ added in v1.22.0
func NewStringUtils() StringUtils
type TerraformContent ¶
type TerraformContent struct {
// contains filtered or unexported fields
}
func NewTerraformContent ¶
func NewTerraformContent(modulePath string) (*TerraformContent, error)
func (*TerraformContent) ExtractItems ¶
func (tc *TerraformContent) ExtractItems(filePath, blockType string) ([]string, error)
Example ¶
tmpDir := os.TempDir()
varsFile := filepath.Join(tmpDir, "example_vars.tf")
content := `
variable "name" {
type = string
}
variable "location" {
type = string
}
`
if err := os.WriteFile(varsFile, []byte(content), 0o644); err != nil {
fmt.Printf("Error: %v\n", err)
return
}
defer os.Remove(varsFile)
tc, _ := NewTerraformContent(tmpDir)
items, _ := tc.ExtractItems(varsFile, "variable")
for _, item := range items {
fmt.Println(item)
}
func (*TerraformContent) ExtractModuleItems ¶ added in v1.22.0
func (tc *TerraformContent) ExtractModuleItems(blockType string) ([]string, error)
func (*TerraformContent) ExtractResourcesAndDataSources ¶
func (tc *TerraformContent) ExtractResourcesAndDataSources() ([]string, []string, error)
type TerraformDefinitionValidator ¶
type TerraformDefinitionValidator struct {
// contains filtered or unexported fields
}
func NewTerraformDefinitionValidator ¶
func NewTerraformDefinitionValidator(markdown *MarkdownContent, terraform *TerraformContent) *TerraformDefinitionValidator
func (*TerraformDefinitionValidator) Validate ¶
func (tdv *TerraformDefinitionValidator) Validate() []error
type URLValidator ¶
type URLValidator struct {
// contains filtered or unexported fields
}
func NewURLValidator ¶
func NewURLValidator(content *MarkdownContent) *URLValidator
func (*URLValidator) Validate ¶
func (uv *URLValidator) Validate() []error
Click to show internal directories.
Click to hide internal directories.