plugin

package
v3.0.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2021 License: Apache-2.0 Imports: 9 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

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.

func Key

func Key(name, version string) string

Key returns a unique identifying string for a plugin's name and version.

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

Types

type Context

type Context struct {
	// CommandName sets the command name for a subcommand.
	CommandName string
	// Description is a description of what this subcommand does. It is used to display help.
	Description string
	// Examples are one or more examples of the command-line usage of this subcommand. It is used to display help.
	Examples string
}

Context is the runtime context for a subcommand.

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
}

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
}

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

type Subcommand

type Subcommand interface {
	// UpdateContext updates a Context with subcommand-specific help text, like description and examples. It also serves
	// to pass context from the CLI to the subcommand, such as the command name.
	// Can be a no-op if default help text is desired.
	UpdateContext(*Context)
	// BindFlags binds the subcommand's flags to the CLI. This allows each subcommand to define its own
	// command line flags.
	BindFlags(*pflag.FlagSet)
	// Run runs the subcommand.
	Run() error
	// InjectConfig passes a config to a plugin. The plugin may modify the config.
	// Initializing, loading, and saving the config is managed by the cli package.
	InjectConfig(config.Config)
}

Subcommand is an interface that defines the common base for subcommands returned by plugins

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.

Jump to

Keyboard shortcuts

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