pulumi/cmd/gen_markdown.go
Joe Duffy 578f18831e
Add commands to generate goodies (#1288)
This change adds two new (hidden) CLI commands:

* `gen-bash-completion`: This command generates a bash completion
  script for the CLI, storing it in the file specified by the 1st arg.
  This fixes pulumi/pulumi#1172.

* `gen-markdown`: This command generates a directory of Markdown files,
  one per command, documenting the CLI commands and their usage.

I originally did these as separate scripts that we can use in our
build processes, but it was actually even easier to make `pulumi` able
to generate them for itself.  The nice part about this is that we don't
even need to bundle additional assets in order to distribute e.g. the
bash completion scripts, we can simply tell people to run

    $ pulumi gen-bash-completion /etc/bash_completion.d/pulumi

This can also be used in our upcoming Brew installer.
2018-04-28 11:18:21 -07:00

25 lines
766 B
Go

// Copyright 2016-2018, Pulumi Corporation. All rights reserved.
package cmd
import (
"github.com/spf13/cobra"
"github.com/spf13/cobra/doc"
"github.com/pulumi/pulumi/pkg/util/cmdutil"
)
// newGenMarkdownCmd returns a new command that, when run, generates CLI documentation as Markdown files.
// It is hidden by default since it's not commonly used outside of our own build processes.
func newGenMarkdownCmd(root *cobra.Command) *cobra.Command {
return &cobra.Command{
Use: "gen-markdown <DIR>",
Args: cmdutil.ExactArgs(1),
Short: "Generate Pulumi CLI documentation as Markdown (one file per command)",
Hidden: true,
Run: cmdutil.RunFunc(func(cmd *cobra.Command, args []string) error {
return doc.GenMarkdownTree(root, args[0])
}),
}
}