parser

package
v0.45.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountFiles

func CountFiles() int

func Functions

func Functions(baseDir string) map[string]function.Function

Functions returns the set of functions that should be used to when evaluating expressions in the receiving scope.

func LoadBlocksFromFile

func LoadBlocksFromFile(file *hcl.File) (hcl.Blocks, error)

func LoadDirectory

func LoadDirectory(fullPath string, stopOnHCLError bool) ([]*hcl.File, error)

func LoadTFVars

func LoadTFVars(filenames []string) (map[string]cty.Value, error)

Types

type Evaluator

type Evaluator struct {
	// contains filtered or unexported fields
}

func NewEvaluator

func NewEvaluator(
	projectRootPath string,
	modulePath string,
	blocks block.Blocks,
	inputVars map[string]cty.Value,
	moduleMetadata *ModulesMetadata,
	modules []*ModuleInfo,
	visitedModules []*visitedModule,
	stopOnHCLError bool,
) *Evaluator

func (*Evaluator) EvaluateAll

func (e *Evaluator) EvaluateAll() (block.Blocks, error)

func (*Evaluator) ExportOutputs

func (e *Evaluator) ExportOutputs() cty.Value

export module outputs to a parent hclcontext

func (*Evaluator) SetModuleBasePath

func (e *Evaluator) SetModuleBasePath(path string)

type ModuleInfo

type ModuleInfo struct {
	Name       string
	Path       string
	Definition block.Block
	Blocks     block.Blocks
}

func LoadModules

func LoadModules(blocks block.Blocks, projectBasePath string, metadata *ModulesMetadata, stopOnHCLError bool) []*ModuleInfo

LoadModules reads all module blocks and loads the underlying modules, adding blocks to e.moduleBlocks

type ModuleMetadata

type ModuleMetadata struct {
	Key     string `json:"Key"`
	Source  string `json:"Source"`
	Version string `json:"Version"`
	Dir     string `json:"Dir"`
}

type ModulesMetadata

type ModulesMetadata struct {
	Modules []ModuleMetadata `json:"Modules"`
}

func LoadModuleMetadata

func LoadModuleMetadata(fullPath string) (*ModulesMetadata, error)

type Option

type Option func(p *Parser)

func OptionDoNotSearchTfFiles

func OptionDoNotSearchTfFiles() Option

func OptionStopOnHCLError

func OptionStopOnHCLError() Option

func OptionWithTFVarsPaths

func OptionWithTFVarsPaths(paths []string) Option

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser is a tool for parsing terraform templates at a given file system location

func New

func New(initialPath string, options ...Option) *Parser

New creates a new Parser

func (*Parser) ParseDirectory

func (parser *Parser) ParseDirectory() (block.Blocks, error)

ParseDirectory parses all terraform files within a given directory

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL