This deprecates sort by flags in favor of their corresponding dynamic
valued ones. Affected flags are:
- `--sort-by-required`
- `--sort-by-type`
In return new `--sort-by string` is added with following values:
- `name` (default)
- `required`
- `type`
Note that the behavior of `--sort bool` was not changed and to disable
sorting altogether you can run `--sort false`.
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
This is a small change that prints any errors that surface when
executing the cli (i.e., `cmd.Execute()`) to stderr rather than
stdout.
When redirecting streams, its useful to keep errors separated from
program output so that in the case of an error the message won't be
redirected and is still surfaced. This issue came up for me when
using this terraform-docs in a script, where I encountered an error:
$ terraform-docs markdown path/not/to/mod > outfile
zsh: exit 1 terraform-docs markdown path/not/to/mod > outfile
When I ran the above command in my script an error was generated
because the path was incorrect, however the error message wasn't
printed to my console and the outfile was filled with the error
message. The change here modifies the cli's output to instead show:
$ terraform-docs markdown path/not/to/mod > outfile
Error: Failed to read module directory: Module directory path/not/to/mod does not exist or cannot be read.
zsh: exit 1 terraform-docs markdown path/not/to/mod > outfile
and the outfile is empty.
Signed-off-by: Anthony O'Brien <anthony@bearonis.com>
Enables a footer to be appended to the end of a generated document
sourced from tf files or documents in the same way as the header
Adds the `footer-from` field to the config yml
Adds the `--footer-from` flag to the cli
Signed-off-by: Simon Clifford <siclifford@gmail.com>
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
There are two modes for saving into file:
- inject: partially replace the target file with generated output
- replace: completely replace the target file with generated output
The output generated by formatters (markdown, asciidoc, etc) will be
inserted into a template before getting saved into the file. This
template can be customized with '--output-template' CLI flag or
corresponding item in '.terraform-docs.yml' config file. Its default
value is:
```
<!-- BEGIN_TF_DOCS -->
{{ .Content }}
<!-- END_TF_DOCS -->
```
This consists of three items, all of them are mandatory:
- begin comment
- content variable
- end comment
You may change the wording of comment as you wish, but the comment must
be present in the template.
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
Two new flags are added: '--default bool' and '--type bool' to
control the visibility of Default and Type columns and section
respectively in Markdown and AsciiDoc.
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
In v0.10.0 flags '--no-XXX' have been deprecated in favor of their
counterparts in the format of '--X=false' (e.g. --no-header and
--header=false). And they are completely being removed now (two releases
after original announcement)
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
BREAKING CHANGE: - Following flags have been deprecated and will be
removed in the following releases:
- Flag `--no-color` has been deprecated, use `--color=false` instead
- Flag `--no-escape` has been deprecated, use `--escape=false` instead
- Flag `--no-header` has been deprecated, use `--hide header` instead
- Flag `--no-inputs` has been deprecated, use `--hide inputs` instead
- Flag `--no-outputs` has been deprecated, use `--hide outputs` instead
- Flag `--no-providers` has been deprecated, use `--hide providers` instead
- Flag `--no-requirements` has been deprecated, use `--hide requirements` instead
- Flag `--no-required` has been deprecated, use `--required=false` instead
- Flag `--no-sensitive` has been deprecated, use `--sensitive=false` instead
- Flag `--no-sort` has been deprecated, use `--sort=false` instead
* Implement AsciiDoc renderer
* Add missing tests to maintain expected code coverage
* Keep alphabetical order
* Refactor indent function (accept char argument and make homogeneous for both MD and Adoc renderers)
* Force asciidoc syntax in every table column
* Remove extra NL before code blocks and add autowidth tables
* Move char argument after settings in indent function
* Implement new factory function for asciidoc renderer
* Update asciidoc table docs
* Return empty indentation if no indent scpecified
* Prevent adding a trailing whitespace in table rows
* Change asciidoc alias to match file extension
* Update docs
* --no-header should stop terraform-docs from reading the main.tf file
Our projects do not have that file. Even with `--no-header`, terraform-docs crashes
* Add tests for empty configs in every format
+ Add a ShowHeader attribute in Options
+ Check for that option in loadHeader
* Allow hiding the "Sensitive" column in markdown
Use case: for projects where all outputs are expected to not be sensitive, it adds noise
* Document the new --no-sensitive option
* Fixed tests, they were written on a previous branch
* Fix tests following merge with master
* Update internal/format/document.go
Co-Authored-By: Khosrow Moossavi <khos2ow@gmail.com>
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>
* Allow users to pass '--output-values'
Pass empty string to CreateModule.outputValuePath
* Fix bug causing 'pretty' tests to fail
* Link formats documentation in README (#181)
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>
* docs: Auto generate formats document from examples (#192)
* Auto generate formats document from examples
* fix lint issues
* refactor: Add tfconf.Options to load Module with (#193)
* Update Changelog
* Allow users to pass '--output-values'
Read the outputValuesPath from an env variable
Use an env var with a path for '--output-values'
Update Changelog
Use an env var with a path for '--output-values'
Update Changelog
properly write output values for evrythng but yaml
* Fix failing json+yaml tests
* Remove unneeded code block from output.go
* Remove unused import statement from output.go
* Fix some noob mistakes
* Create two flags to use for output value injection
* Fix bug vanilla commands+build test to fail
* Modify all tests and add new for outputvalues
* Modify to include many output types
* Optimize imports to appease checkfmt
* Create loadOutputValues function
* Fix linter issue
* Code review fixes. Hopefully the final commit!
* appease linter
* Not allow sensitive output values to be injected
* Remove trailing slash from tests
* Remove default values from `--output-values-from`
Co-authored-by: Martyn Ranyard <iMartyn@users.noreply.github.com>
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>
BREAKING CHANGE: - With Terraform 0.12 ability to generate
output from file has been deprecated in favor of from folder
which contains one or more `.tf` files.
Supported comment formats is:
- jsdoc, c or java-like multi-line comment `/** **/`
BREAKING CHANGE: - In the JSON format respone, module "Comment" has been renamed to module `header`.
BREAKING CHANGE: - For simplicity we've decided to
deprecated the old `--sort-inputs-by-required` flag
to the simpler and more generic `--sort--by-required`.
The deprecated flags will get removed second release
from now.
BREAKING CHANGE: - As of Terraform 0.12, the default value of
input variables are shown in full JSON format (if available)
and `--with-aggregate-type-defaults` is not needed anymore.
The flag is marked as soft deprecated and will get removed in
the second release from now.
* Support 0.12 configuration
* Move code out of GOPATH for CircleCI
* cleanup
* Rename 'variables' back to 'input' just for now
* Normalizing 'print.s.Settings' usage
* Normalize settings continued
* Remove '--providers' functionality for now
* Adjust 'commands' based on moarta's changes
* Adjust 'pkg/doc' based on moarta's changes
* Adjust 'pkg/print/json' based on moarta's changes
* Fix json tests
* don't trim whitespaces from .tf files
* Adjust 'pkg/print/pretty' based on moarta's changes
* Fix pretty tests
* don't trim whitespaces from .golden files
* Show 'n/a' for empty description for 'pretty'
* Show 'any' if type of input variable is missing
* Adjust 'pkg/print/markdown/document' based on moarta's changes
* Fix document tests
* move back vendor files
* Adjust 'pkg/print/markdown/table' based on moarta's changes
* fix lint issue
* Fix table tests
* figure out input type based on default value if tpye not explicitly defined
* don't escape ( ) [ ] { }, as they don't cause any issue
Authored-by: Thomas Alton <thomas.alton@gmail.com>
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>