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.