Version: v3.12.0 Latest Latest

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

Go to latest
Published: Sep 5, 2023 License: Apache-2.0 Imports: 12 Imported by: 18




This section is empty.


This section is empty.


func CommonSupportedProjectVersions

func CommonSupportedProjectVersions(plugins ...Plugin) []config.Version

CommonSupportedProjectVersions returns the projects versions that are supported by all the provided Plugins

func GetShortName

func GetShortName(name string) string

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 IsLegacyLayout(config config.Config) bool

Deprecated: it was added to ensure backwards compatibility and should be removed when we remove the go/v3 plugin IsLegacyLayout returns true when is possible to identify that the project was scaffolded with the previous layout

func KeyFor

func KeyFor(p Plugin) string

KeyFor returns a Plugin's unique identifying string.

func SplitKey

func SplitKey(key string) (string, string)

SplitKey returns a name and version for a plugin key.

func SupportsVersion

func SupportsVersion(p Plugin, projectVersion config.Version) bool

SupportsVersion checks if a plugin supports a project version.

func Validate

func Validate(p Plugin) error

Validate ensures a Plugin is valid.

func ValidateKey

func ValidateKey(key string) error

ValidateKey ensures both plugin name and version are valid.


type Bundle

type Bundle interface {
	// 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 deprecated

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.

Deprecated: Use the NewBundle informing the options from now one. Replace its use for as the following example. Example:

 mylanguagev1Bundle, _ := plugin.NewBundle(plugin.WithName(language.DefaultNameQualifier),
   plugin.WithVersion(plugin.Version{Number: 1}),
	  plugin.WithPlugins(kustomizecommonv1.Plugin{}, mylanguagev1.Plugin{}),

func NewBundleWithOptions added in v3.11.0

func NewBundleWithOptions(opts ...BundleOption) (Bundle, error)

NewBundleWithOptions creates a new Bundle with the provided BundleOptions. The list of supported project versions is computed from the provided plugins in options.

type BundleOption added in v3.11.0

type BundleOption func(*bundle)

func WithDeprecationMessage added in v3.11.0

func WithDeprecationMessage(msg string) BundleOption

func WithName added in v3.11.0

func WithName(name string) BundleOption

func WithPlugins added in v3.11.0

func WithPlugins(plugins ...Plugin) BundleOption

func WithVersion added in v3.11.0

func WithVersion(version Version) BundleOption

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 {
	// 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 {

CreateAPISubcommand is an interface that represents a `create api` subcommand.

type CreateWebhook

type CreateWebhook interface {
	// 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 {

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 {
	// GetEditSubcommand returns the underlying EditSubcommand interface.
	GetEditSubcommand() EditSubcommand

Edit is an interface for plugins that provide a `edit` subcommand.

type EditSubcommand

type EditSubcommand interface {

EditSubcommand is an interface that represents an `edit` subcommand.

type ExitError

type ExitError struct {
	Plugin string
	Reason string

ExitError is a typed error that is returned by a plugin when no further steps should be executed for itself.

func (ExitError) Error

func (e ExitError) Error() string

Error implements error

type Full

type Full interface {

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.

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 {
	// GetInitSubcommand returns the underlying InitSubcommand interface.
	GetInitSubcommand() InitSubcommand

Init is an interface for plugins that provide an `init` subcommand.

type InitSubcommand

type InitSubcommand interface {

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 "".
	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

func FilterPluginsByKey(plugins []Plugin, key string) ([]Plugin, error)

FilterPluginsByKey returns the set of plugins that match the provided key (may be not-fully qualified)

func FilterPluginsByProjectVersion

func FilterPluginsByProjectVersion(plugins []Plugin, projectVersion config.Version) []Plugin

FilterPluginsByProjectVersion returns the set of plugins that support the provided project version

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 {

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) Compare

func (v Version) Compare(other Version) int

Compare returns -1 if v < other, 0 if v == other, and 1 if v > other.

func (Version) IsStable

func (v Version) IsStable() bool

IsStable returns true if v is stable.

func (*Version) Parse

func (v *Version) Parse(version string) error

Parse parses version inline, assuming it adheres to format: (v)?[0-9]*(-(alpha|beta))?

func (Version) String

func (v Version) String() string

String returns the string representation of v.

func (Version) Validate

func (v Version) Validate() error

Validate ensures that the version number is positive and the stage is one of the valid stages.


Path Synopsis

Jump to

Keyboard shortcuts

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