Documentation ¶
Index ¶
- func CommonSupportedProjectVersions(plugins ...Plugin) []config.Version
- func GetShortName(name string) string
- func IsLegacyLayout(config config.Config) booldeprecated
- func KeyFor(p Plugin) string
- func SplitKey(key string) (string, string)
- func SupportsVersion(p Plugin, projectVersion config.Version) bool
- func Validate(p Plugin) error
- func ValidateKey(key string) error
- type Bundle
- type CLIMetadata
- type CreateAPI
- type CreateAPISubcommand
- type CreateWebhook
- type CreateWebhookSubcommand
- type Deprecated
- type Edit
- type EditSubcommand
- type ExitError
- type Full
- type HasFlags
- type HasPostScaffold
- type HasPreScaffold
- type Init
- type InitSubcommand
- type Plugin
- type RequiresConfig
- type RequiresResource
- type Scaffolder
- type Subcommand
- type SubcommandMetadata
- type UpdatesMetadata
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CommonSupportedProjectVersions ¶
CommonSupportedProjectVersions returns the projects versions that are supported by all the provided Plugins
func GetShortName ¶
GetShortName returns plugin's short name (name before domain) if name is fully qualified (has a domain suffix), otherwise GetShortName returns name. Deprecated
func IsLegacyLayout
deprecated
added in
v3.9.0
func SupportsVersion ¶
SupportsVersion checks if a plugin supports a project version.
func ValidateKey ¶
ValidateKey ensures both plugin name and version are valid.
Types ¶
type Bundle ¶
type Bundle interface { Plugin // Plugins returns a list of the bundled plugins. // The returned list should be flattened, i.e., no plugin bundles should be part of this list. Plugins() []Plugin }
Bundle allows to group plugins under a single key.
func NewBundle ¶
func NewBundle(name string, version Version, deprecateWarning string, plugins ...Plugin) (Bundle, error)
NewBundle creates a new Bundle with the provided name and version, and that wraps the provided plugins. The list of supported project versions is computed from the provided plugins.
type CLIMetadata ¶
type CLIMetadata struct { // CommandName is the root command name. CommandName string }
CLIMetadata is the runtime meta-data of the CLI
type CreateAPI ¶
type CreateAPI interface { Plugin // GetCreateAPISubcommand returns the underlying CreateAPISubcommand interface. GetCreateAPISubcommand() CreateAPISubcommand }
CreateAPI is an interface for plugins that provide a `create api` subcommand.
type CreateAPISubcommand ¶
type CreateAPISubcommand interface { Subcommand RequiresResource }
CreateAPISubcommand is an interface that represents a `create api` subcommand.
type CreateWebhook ¶
type CreateWebhook interface { Plugin // GetCreateWebhookSubcommand returns the underlying CreateWebhookSubcommand interface. GetCreateWebhookSubcommand() CreateWebhookSubcommand }
CreateWebhook is an interface for plugins that provide a `create webhook` subcommand.
type CreateWebhookSubcommand ¶
type CreateWebhookSubcommand interface { Subcommand RequiresResource }
CreateWebhookSubcommand is an interface that represents a `create wekbhook` subcommand.
type Deprecated ¶
type Deprecated interface { // DeprecationWarning returns a string indicating a plugin is deprecated. DeprecationWarning() string }
Deprecated is an interface that defines the messages for plugins that are deprecated.
type Edit ¶
type Edit interface { Plugin // GetEditSubcommand returns the underlying EditSubcommand interface. GetEditSubcommand() EditSubcommand }
Edit is an interface for plugins that provide a `edit` subcommand.
type EditSubcommand ¶
type EditSubcommand interface { Subcommand }
EditSubcommand is an interface that represents an `edit` subcommand.
type ExitError ¶
ExitError is a typed error that is returned by a plugin when no further steps should be executed for itself.
type Full ¶
type Full interface { Init CreateAPI CreateWebhook Edit }
Full is an interface for plugins that provide `init`, `create api`, `create webhook` and `edit` subcommands.
type HasFlags ¶
type HasFlags interface { // BindFlags binds flags to the CLI subcommand. BindFlags(*pflag.FlagSet) }
HasFlags is an interface that implements the optional bind flags method.
type HasPostScaffold ¶
type HasPostScaffold interface { // PostScaffold executes tasks after the main scaffolding. PostScaffold() error }
HasPostScaffold is an interface that implements the optional post-scaffold method.
type HasPreScaffold ¶
type HasPreScaffold interface { // PreScaffold executes tasks before the main scaffolding. PreScaffold(machinery.Filesystem) error }
HasPreScaffold is an interface that implements the optional pre-scaffold method.
type Init ¶
type Init interface { Plugin // GetInitSubcommand returns the underlying InitSubcommand interface. GetInitSubcommand() InitSubcommand }
Init is an interface for plugins that provide an `init` subcommand.
type InitSubcommand ¶
type InitSubcommand interface { Subcommand }
InitSubcommand is an interface that represents an `init` subcommand.
type Plugin ¶
type Plugin interface { // Name returns a DNS1123 label string identifying the plugin uniquely. This name should be fully-qualified, // i.e. have a short prefix describing the plugin type (like a language) followed by a domain. // For example, Kubebuilder's main plugin would return "go.kubebuilder.io". Name() string // Version returns the plugin's version. // // NOTE: this version is different from config version. Version() Version // SupportedProjectVersions lists all project configuration versions this plugin supports. // The returned slice cannot be empty. SupportedProjectVersions() []config.Version }
Plugin is an interface that defines the common base for all plugins.
func FilterPluginsByKey ¶
FilterPluginsByKey returns the set of plugins that match the provided key (may be not-fully qualified)
type RequiresConfig ¶
type RequiresConfig interface { // InjectConfig injects the configuration to a subcommand. InjectConfig(config.Config) error }
RequiresConfig is an interface that implements the optional inject config method.
type RequiresResource ¶
type RequiresResource interface { // InjectResource injects the resource model to a subcommand. InjectResource(*resource.Resource) error }
RequiresResource is an interface that implements the required inject resource method.
type Scaffolder ¶
type Scaffolder interface { // Scaffold implements the main scaffolding. Scaffold(machinery.Filesystem) error }
Scaffolder is an interface that implements the required scaffold method.
type Subcommand ¶
type Subcommand interface { Scaffolder }
Subcommand is a base interface for all subcommands.
type SubcommandMetadata ¶
type SubcommandMetadata struct { // Description is a description of what this command does. It is used to display help. Description string // Examples are one or more examples of the command-line usage of this command. It is used to display help. Examples string }
SubcommandMetadata is the runtime meta-data for a subcommand
type UpdatesMetadata ¶
type UpdatesMetadata interface { // UpdateMetadata updates the subcommand metadata. UpdateMetadata(CLIMetadata, *SubcommandMetadata) }
UpdatesMetadata is an interface that implements the optional metadata update method.
type Version ¶
type Version struct { // Number denotes the current version of a plugin. Two different numbers between versions // indicate that they are incompatible. Number int // Stage indicates stability. Stage stage.Stage }
Version is a plugin version containing a positive integer and a stage value that represents stability.
func (*Version) Parse ¶
Parse parses version inline, assuming it adheres to format: (v)?[0-9]*(-(alpha|beta))?