Commit Graph

13 Commits

Author SHA1 Message Date
Martin Atkins
2ddf8b4b8c cmd/hcldec: allow spec file to define variables and functions
The spec file can now additionally define default variables and functions
for the eval context used to evaluate the input file.
2018-02-04 11:05:23 -08:00
Martin Atkins
6c3ae68a0e cmd/hcldec: make cty stdlib functions available to specs
In a few specific portions of the spec format it's convenient to have
access to some of the functions defined in the cty stdlib. Here we allow
them to be used when constructing the value for a "literal" spec and in
the result expression for a "transform" spec.
2018-02-04 10:33:35 -08:00
Martin Atkins
1ba92ee170 cmd/hcldec: "transform" spec type
This new spec type allows evaluating an arbitrary expression on the
result of a nested spec, for situations where the a value must be
transformed in some way.
2018-02-04 09:59:20 -08:00
Martin Atkins
f65a097d17 cmd/hcldec: decode "array" blocks
These were missed on the previous pass, causing a disagreement with the
documentation.
2018-02-04 09:45:28 -08:00
Martin Atkins
ee147d9ee6 cmd/hcldec: Command-line tool for converting HCL config to JSON
This is essentially a CLI wrapper around the hcldec package, accepting a
decoding specification via a HCL-based language and using it to translate
input HCL files into JSON values while performing basic structural and
type validation of the input files.
2018-02-03 15:37:11 -08:00
Martin Atkins
a59f60c1db hclfmt: Have this tool call itself by the correct name
Its usage output was still reporting "zclfmt", which is a remnant of the
experimental project that HCL was forked from.
2018-01-27 11:03:05 -08:00
Martin Atkins
b8b5e0be6d hclparse: rename ParseZCL to ParseHCL 2017-09-11 17:22:10 -07:00
Martin Atkins
708abb8c97 Move the zcl package and its two parsing subpackages to "hcl" names
This is a super-invasive update since the "zcl" package in particular
is referenced all over.

There are probably still a few zcl references hanging around in comments,
etc but this takes care of most of it.
2017-09-11 16:40:37 -07:00
Martin Atkins
0dc3a6015c Rename the ancillary packages from "zcl" to "hcl".
The main "zcl" package requires a bit more care because of how many
callers it has and because of its two subpackages, so we'll take care
of that one separately.
2017-09-11 16:00:31 -07:00
Martin Atkins
c3ca111fff Adjust import paths for hashicorp/hcl2 repo
This begins 'the great fork' of zcl to HCL.
2017-09-11 15:38:42 -07:00
Martin Atkins
2c9302b699 cmd/zclfmt: skip formatting a file only if it has errors
Previously we were erroneously skipping formatting it whenever check mode
was enabled, regardless of errors.
2017-06-24 09:13:48 -07:00
Martin Atkins
d1fb42746b cmd/zclfmt: new options for checking validity of input files 2017-06-24 09:02:30 -07:00
Martin Atkins
aba54359ba cmd/zclfmt: zcl native syntax pretty-printer
This applies the simple native syntax reformatting function to one or
more files. It does not support JSON or any other syntax.

Calling applications might provide their own versions of this that e.g.
can format an entire directory by matching on filename patterns, but
this serves as an example and a utility for single files.
2017-06-24 09:02:11 -07:00