Files
terraform-docs/cmd/asciidoc/asciidoc.go
Khosrow Moossavi 1450ee9a10 Generate submodules documents with '--resurcive' flag
Considering the file strucutre below of main module and its submodules,
now it is possible to generate documentation for them main and all its
submodules in one execution, with `--recursive` flag.

Note that generating documentation recursively is allowed only with
`--output-file` set.

Path to find submodules can be configured with `--recursive-path`
(defaults to `modules`).

Each submodule can also have their own `.terraform-docs.yml` confi file,
to override configuration from root module.

```
.
├── README.md
├── main.tf
├── modules
│   └── my-sub-module
│       ├── README.md
│       ├── main.tf
│       ├── variables.tf
│       └── versions.tf
├── outputs.tf
├── variables.tf
└── versions.tf
```

Signed-off-by: Khosrow Moossavi <khos2ow@gmail.com>
2021-08-10 18:22:40 -04:00

47 lines
1.7 KiB
Go

/*
Copyright 2021 The terraform-docs Authors.
Licensed under the MIT license (the "License"); you may not
use this file except in compliance with the License.
You may obtain a copy of the License at the LICENSE file in
the root directory of this source tree.
*/
package asciidoc
import (
"github.com/spf13/cobra"
"github.com/terraform-docs/terraform-docs/cmd/asciidoc/document"
"github.com/terraform-docs/terraform-docs/cmd/asciidoc/table"
"github.com/terraform-docs/terraform-docs/internal/cli"
)
// NewCommand returns a new cobra.Command for 'asciidoc' formatter
func NewCommand(runtime *cli.Runtime, config *cli.Config) *cobra.Command {
cmd := &cobra.Command{
Args: cobra.ExactArgs(1),
Use: "asciidoc [PATH]",
Aliases: []string{"adoc"},
Short: "Generate AsciiDoc of inputs and outputs",
Annotations: cli.Annotations("asciidoc"),
PreRunE: runtime.PreRunEFunc,
RunE: runtime.RunEFunc,
}
// flags
cmd.PersistentFlags().BoolVar(&config.Settings.Anchor, "anchor", true, "create anchor links")
cmd.PersistentFlags().BoolVar(&config.Settings.Default, "default", true, "show Default column or section")
cmd.PersistentFlags().IntVar(&config.Settings.Indent, "indent", 2, "indention level of AsciiDoc sections [1, 2, 3, 4, 5]")
cmd.PersistentFlags().BoolVar(&config.Settings.Required, "required", true, "show Required column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Sensitive, "sensitive", true, "show Sensitive column or section")
cmd.PersistentFlags().BoolVar(&config.Settings.Type, "type", true, "show Type column or section")
// subcommands
cmd.AddCommand(document.NewCommand(runtime, config))
cmd.AddCommand(table.NewCommand(runtime, config))
return cmd
}