diff --git a/.gitignore b/.gitignore index 8bedd020..f51c4d8c 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ yq*.snap test.yml test*.yml +test*.tf test*.xml test*.toml test*.yaml diff --git a/README.md b/README.md index 3eed4af1..4fb81dcd 100644 --- a/README.md +++ b/README.md @@ -363,6 +363,8 @@ gah install yq - [Load content from other files](https://mikefarah.gitbook.io/yq/operators/load) - [Convert to/from json/ndjson](https://mikefarah.gitbook.io/yq/v/v4.x/usage/convert) - [Convert to/from xml](https://mikefarah.gitbook.io/yq/v/v4.x/usage/xml) +- [Convert to/from hcl (terraform)](https://mikefarah.gitbook.io/yq/v/v4.x/usage/hcl) +- [Convert to/from toml](https://mikefarah.gitbook.io/yq/v/v4.x/usage/toml) - [Convert to/from properties](https://mikefarah.gitbook.io/yq/v/v4.x/usage/properties) - [Convert to/from csv/tsv](https://mikefarah.gitbook.io/yq/usage/csv-tsv) - [General shell completion scripts (bash/zsh/fish/powershell)](https://mikefarah.gitbook.io/yq/v/v4.x/commands/shell-completion) @@ -413,7 +415,7 @@ Flags: -h, --help help for yq -I, --indent int sets indent level for output (default 2) -i, --inplace update the file in place of first file given. - -p, --input-format string [auto|a|yaml|y|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|lua|l|ini|i] parse format for input. (default "auto") + -p, --input-format string [auto|a|yaml|y|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|hcl|h|lua|l|ini|i] parse format for input. (default "auto") --lua-globals output keys as top-level global variables --lua-prefix string prefix (default "return ") --lua-suffix string suffix (default ";\n") @@ -422,7 +424,7 @@ Flags: -N, --no-doc Don't print document separators (---) -0, --nul-output Use NUL char to separate values. If unwrap scalar is also set, fail if unwrapped scalar contains NUL char. -n, --null-input Don't read input, simply evaluate the expression given. Useful for creating docs from scratch. - -o, --output-format string [auto|a|yaml|y|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|shell|s|lua|l|ini|i] output format type. (default "auto") + -o, --output-format string [auto|a|yaml|y|json|j|props|p|csv|c|tsv|t|xml|x|base64|uri|toml|hcl|h|shell|s|lua|l|ini|i] output format type. (default "auto") -P, --prettyPrint pretty print, shorthand for '... style = ""' --properties-array-brackets use [x] in array paths (e.g. for SpringBoot) --properties-separator string separator to use between keys and values (default " = ") diff --git a/acceptance_tests/inputs-format.sh b/acceptance_tests/inputs-format.sh index 60d0bd11..282b5287 100755 --- a/acceptance_tests/inputs-format.sh +++ b/acceptance_tests/inputs-format.sh @@ -6,6 +6,7 @@ setUp() { rm test*.csv 2>/dev/null || true rm test*.tsv 2>/dev/null || true rm test*.xml 2>/dev/null || true + rm test*.tf 2>/dev/null || true } testInputProperties() { @@ -255,4 +256,61 @@ EOM assertEquals "$expected" "$X" } +testInputTerraform() { + cat >test.tf <test.tf <