command_flags

command
v0.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

README

Plugin Command Flags

Plugins can use the flags that are used by native ephemeral-iam commands. To see an example of this, reference the Command with flags example.

Here are the available flags and their intended usage.

Name CLI Format Description
ComputeInstanceFlag --instance/-i The name of a compute instance
ProjectFlag --project/-p The GCP project. Inherits from the active gcloud config by default
PubSubTopicFlag --topic/-t The name of a Pub/Sub topic
ReasonFlag --reason/-R The reason for running a command. ephemeral-iam uses this with the WithRequestReason option when creating API clients
RegionFlag --region/-r The GCP region. Inherits from the active gcloud config by default
ServiceAccountEmailFlag --service-account-email/-s The email address of a service account
StorageBucketFlag --bucket/-b The name of a Storage Bucket
YesFlag --yes/-y Assume 'yes' to all prompts
ZoneFlag --zone/-z The GCP zone. Inherits from the active gcloud config by default

Adding custom flags to plugin commands

Custom flags can be added to plugin commands just like any other Cobra command as long as the name/shortform does not conflict with an existing flag.

Example:

var (
	Plugin = &eiamplugin.EphemeralIamPlugin{
		// Command defines the top-level command that will be added to eiam.
		// It is an instance of cobra.Command (https://pkg.go.dev/github.com/spf13/cobra#Command)
		Command: pluginFuncWithEiamFlags(),
		Name:    "Plugin with command flags",
		Desc:    "This is an example plugin with command flags",
		Version: "v0.0.1",
	}

    Verbose bool
)

func pluginFuncWithEiamFlags() *cobra.Command {
    cmd := &cobra.Command{
        Use: "example",
        RunE: func(cmd *cobra.command, args []string) error {
            if Verbose {
                fmt.Println("Verbose output enabled")
            }
            return nil
        }
    }

    cmd.Flags().BoolVarP(&Verbose, "verbose", "v", false, "Enable verbose output")

	return cmd
}

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL