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.
23 lines
742 B
Go
23 lines
742 B
Go
// Copyright 2016-2018, Pulumi Corporation. All rights reserved.
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/pulumi/pulumi/pkg/util/cmdutil"
|
|
)
|
|
|
|
// newGenBashCompletionCmd returns a new command that, when run, generates a bash completion script for the CLI.
|
|
// It is hidden by default since it's not commonly used outside of our own build processes.
|
|
func newGenBashCompletionCmd(root *cobra.Command) *cobra.Command {
|
|
return &cobra.Command{
|
|
Use: "gen-bash-completion <FILE>",
|
|
Args: cmdutil.ExactArgs(1),
|
|
Short: "Generate a bash completion script for the Pulumi CLI",
|
|
Hidden: true,
|
|
Run: cmdutil.RunFunc(func(cmd *cobra.Command, args []string) error {
|
|
return root.GenBashCompletionFile(args[0])
|
|
}),
|
|
}
|
|
}
|