Documentation
¶
Overview ¶
KCL CLI Plugin. Reference: https://github.com/kubernetes/kubectl/blob/master/pkg/cmd/cmd.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandlePluginCommand ¶
func HandlePluginCommand(pluginHandler PluginHandler, cmdArgs []string, exactMatch bool) error
HandlePluginCommand receives a pluginHandler and command-line arguments and attempts to find a plugin executable on the PATH that satisfies the given arguments.
func IsSubcommandPluginAllowed ¶
IsSubcommandPluginAllowed returns the given command is allowed to use plugin as subcommand if the subcommand does not exist as builtin.
Types ¶
type DefaultPluginHandler ¶
type DefaultPluginHandler struct {
ValidPrefixes []string
}
DefaultPluginHandler implements PluginHandler
func NewDefaultPluginHandler ¶
func NewDefaultPluginHandler(validPrefixes []string) *DefaultPluginHandler
NewDefaultPluginHandler instantiates the DefaultPluginHandler with a list of given filename prefixes used to identify valid plugin filenames.
type PluginHandler ¶
type PluginHandler interface {
// exists at the given filename, or a boolean false.
// Lookup will iterate over a list of given prefixes
// in order to recognize valid plugin filenames.
// The first filepath to match a prefix is returned.
Lookup(filename string) (string, bool)
// Execute receives an executable's filepath, a slice
// of arguments, and a slice of environment variables
// to relay to the executable.
Execute(executablePath string, cmdArgs, environment []string) error
}
PluginHandler is capable of parsing command line arguments and performing executable filename lookups to search for valid plugin files, and execute found plugins.