18 Commits

Author SHA1 Message Date
Khosrow Moossavi
5cfb2f2615 Bump golangci-lint to 1.55.2 and fix issues
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2023-12-19 12:51:04 -05:00
Yutaro Suzuki
090efce37a Run make fmt
Signed-off-by: Yutaro Suzuki <yutaro.suzuki@cloudys.dev>
2023-06-30 04:33:06 +09:00
Khosrow Moossavi
4a9ffe7c33 Move plugin-sdk to in-tree in core repository
Moving terraform-docs/plugin-sdk standalone module to in-tree, because
maintaining both of them, specifically if anything needs to be added to
Config, or terraform will required dual effort on both repository. As
such now everything is consolidated under one repository. Example usage
for plugin developer after this move is as follow:

```go
package main

import (
	_ "embed" //nolint

	"github.com/terraform-docs/terraform-docs/plugin"
	"github.com/terraform-docs/terraform-docs/print"
	"github.com/terraform-docs/terraform-docs/template"
	"github.com/terraform-docs/terraform-docs/terraform"
)

func main() {
	plugin.Serve(&plugin.ServeOpts{
		Name:    "template",
		Version: "0.1.0",
		Printer: printer,
	})
}

//go:embed sections.tmpl
var tplCustom []byte

// Print the custom format template. You have all the flexibility to generate
// the output however you choose to.
func printer(config *print.Config, module *terraform.Module) (string, error) {
	tpl := template.New(config,
		&template.Item{Name: "custom", Text: string(tplCustom)},
	)

	rendered, err := tpl.Render("custom", module)
	if err != nil {
		return "", err
	}

	return rendered, nil
}
```

Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-10-05 18:54:49 -04:00
Khosrow Moossavi
3cc4f4416f Fix issues reported by golangci-lint
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-03-16 17:33:10 -04:00
Khosrow Moossavi
54fc067bf4 Add support for plugin execution
Plugin can be developed on top of terraform-docs/plugin-sdk and made
available to terraform-docs core project in:

- ~/.tfdocs.d/plugins/ or
- ./.tfdocs.d/plugins/ (this takes precedence if exists)

Refer to the following for more details and examples:

- https://github.com/terraform-docs/plugin-sdk
- https://github.com/terraform-docs/tfdocs-format-template

Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-02-02 18:27:04 -05:00
Khosrow Moossavi
44b3361b22 Add license header to codebase files
Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-01-28 12:29:11 -05:00
Julien Duchesne
52653b5107 fix: Render special chars in variables' default value properly (#284)
* Fix: No longer crashes when there are special chars in a variable default

* Do not escape chars everywhere

* Cleanup go.mod
2020-07-17 13:13:50 -04:00
dependabot-preview[bot]
342db66d96 build(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 3.0.0 (#260)
* build(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0

Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.8 to 2.3.0.
- [Release notes](https://github.com/go-yaml/yaml/releases)
- [Commits](https://github.com/go-yaml/yaml/compare/v2.2.8...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* bump gopkg.in/yaml to v3

* set indentation to 2

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Khosrow Moossavi <khos2ow@gmail.com>
2020-05-13 18:53:01 -04:00
Khosrow Moossavi
f944987c90 Remove vendor folder from repo (#249)
* remove vendor folder

* appease staticcheck

* rename to verify

* fix test coverage job
2020-05-02 19:20:43 -04:00
Khosrow Moossavi
595c5c5dfd Appease redundant type from array warning 2020-04-13 13:34:11 -04:00
Khosrow Moossavi
a3e0a56ce6 fix: Mark variables not required if default set to null (#221)
* Mark variables not required if default set to null

* Move github.com/hashicorp/terraform-config-inspect to internal/tfconfig

Internally we depend on terraform-config-inspect, but at the moment
they state that they consider the project is feature-complete and
they do not accept any enhancement pull requests, as such we've
decided to bring over the project as internal package here rather than
being a vendor dependency and apply the fix from @jstewmon from
https://github.com/hashicorp/terraform-config-inspect/pull/24 directly
here.

Since the terraform-config-inspect is considered to be feature-complete
we don't expect to have any more changes on the package, and if there
was a change on upstream we're going to bring it down in the
corresponding package.

* Add notice to the new package

* add license of terraform-config-inspect code

* fix tests after merging master

* fix test after merge master

* show 'required' attribute in JSON, XML, YAML

* update docs
2020-03-30 16:16:55 -04:00
Khosrow Moossavi
9043f268ad feat: Add support for tfvars hcl and json commands (#226)
* Add support for tfvars hcl and json commands

* fix docs generation header issue

* align padding of hcl tfvars items

* add more tests

* update docs

* wording
2020-03-27 15:02:09 -04:00
Khosrow Moossavi
79e926ee43 enhance: Add extensive tests coverage for all the packages (#208)
* Add more test coverage

* add format/util test

* add tfconf/input test

* add line reader test

* cleanup

* add tfconf/output test

* improve internal/module/input coverage

* improve internal/module/options coverage

* improve internal/reader coverage

* improve internal/types coverage

* appease lint

* improve pkg/tfconf/output coverage

* add coverage to test target in makefile

* improve pkg/tmpl/sanitizer coverage

* use 'test' target on action

* always prepare codecov report, even if tests are failing

* fix double-space new line issue

* extensive tests for escaping characters

* enhance nad fix escape characters failing tests

* improve internal/module/module coverage

* improve pkg/tmpl/template coverage

* cleanup
2020-03-09 20:56:29 -04:00
Khosrow Moossavi
b716a25811 feat: Add support for XML renderer (#198)
* Add support for XML renderer

* formatting

* update docs
2020-02-26 14:44:50 -05:00
Khosrow Moossavi
4ff4582dff feat: Show sensitivity of the output value in rendered result (#207) 2020-02-26 12:08:24 -05:00
Khosrow Moossavi
f55fd6cc5b fix: Fix type conversion for numbers (#204)
* Fix type conversion for numbers

* add tests

* add more tests
2020-02-24 10:18:02 -05:00
Khosrow Moossavi
743d4f3ebc refactor: Add Default value types for better marshalling (#196)
* Add Default value types for better marshalling

* fix output-values tests
2020-02-19 15:37:48 -05:00
Khosrow Moossavi
38e18970ed refactor: Introduce Format interface and expose to public pkg (#195)
* Introduce format interface and expose to public pkg

* fix issues after merge

* don't panic

* Rename TFString back to String
2020-02-19 14:07:10 -05:00