Files
terraform-docs/cmd/version/version.go
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

54 lines
1.2 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 version
import (
"fmt"
"github.com/spf13/cobra"
"github.com/terraform-docs/terraform-docs/internal/plugin"
"github.com/terraform-docs/terraform-docs/internal/version"
)
// NewCommand returns a new cobra.Command for 'version' command
func NewCommand() *cobra.Command {
cmd := &cobra.Command{
Args: cobra.NoArgs,
Use: "version",
Short: "Print the version number of terraform-docs",
Run: func(cmd *cobra.Command, args []string) {
fmt.Printf("terraform-docs version %s\n", Full())
plugins, err := plugin.Discover()
if err != nil {
return
}
for _, f := range plugins.All() {
name, err := f.Name()
if err != nil {
name = "unknown"
}
version, err := f.Version()
if err != nil {
version = "unknown"
}
fmt.Printf("- plugin %s %s\n", name, version)
}
},
}
return cmd
}
// Full returns the full version of the binary
func Full() string {
return version.Full()
}