HclParser
Parse HCL files. The scope of this library is to only handle variables.tf
and backend.tf
files, as that’s what’s needed for Terraspace currently.
Usage
“by require “hcl_parser” code =«EOL variable “project” { description = “The name of the GCP Project” default = “test” type = “string” } variable “name_prefix” { type = “string” } EOL
parser = HclParser::Loader.new(code) parser.load
Returns =>
#
{“project”=>
{“description”=>“The name of project”,
“default”=>“test”,
“type”=>“string”,
“name_prefix”=>
“
Installation
“by gem ‘hcl_parser’
“
Notes
- Tried a few different Ruby HCL parsers: hcl-checker, hcl-rb, rhcl, ruby-hcl. They all seem to have one issue or another.
- This library preprocesses the text fed to the parser to workaround the parser issues. It’s a workaround.
- Able to handle simple variable types and most complex types.
- Not able to handle multi-line complex variable types. There’s a spec to document this.
- Will have to fix one of these parsers or write a new one.
- Open to PRs to help.