manager

package
v28.4.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2025 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CommandAnnotationPlugin is added to every stub command added by
	// AddPluginCommandStubs with the value "true" and so can be
	// used to distinguish plugin stubs from regular commands.
	//
	// Deprecated: use [metadata.CommandAnnotationPlugin]. This alias will be removed in the next release.
	CommandAnnotationPlugin = metadata.CommandAnnotationPlugin

	// CommandAnnotationPluginVendor is added to every stub command
	// added by AddPluginCommandStubs and contains the vendor of
	// that plugin.
	//
	// Deprecated: use [metadata.CommandAnnotationPluginVendor]. This alias will be removed in the next release.
	CommandAnnotationPluginVendor = metadata.CommandAnnotationPluginVendor

	// CommandAnnotationPluginVersion is added to every stub command
	// added by AddPluginCommandStubs and contains the version of
	// that plugin.
	//
	// Deprecated: use [metadata.CommandAnnotationPluginVersion]. This alias will be removed in the next release.
	CommandAnnotationPluginVersion = metadata.CommandAnnotationPluginVersion

	// CommandAnnotationPluginInvalid is added to any stub command
	// added by AddPluginCommandStubs for an invalid command (that
	// is, one which failed it's candidate test) and contains the
	// reason for the failure.
	//
	// Deprecated: use [metadata.CommandAnnotationPluginInvalid]. This alias will be removed in the next release.
	CommandAnnotationPluginInvalid = metadata.CommandAnnotationPluginInvalid

	// CommandAnnotationPluginCommandPath is added to overwrite the
	// command path for a plugin invocation.
	//
	// Deprecated: use [metadata.CommandAnnotationPluginCommandPath]. This alias will be removed in the next release.
	CommandAnnotationPluginCommandPath = metadata.CommandAnnotationPluginCommandPath
)
View Source
const (
	// NamePrefix is the prefix required on all plugin binary names
	//
	// Deprecated: use [metadata.NamePrefix]. This alias will be removed in a future release.
	NamePrefix = metadata.NamePrefix

	// MetadataSubcommandName is the name of the plugin subcommand
	// which must be supported by every plugin and returns the
	// plugin metadata.
	//
	// Deprecated: use [metadata.MetadataSubcommandName]. This alias will be removed in a future release.
	MetadataSubcommandName = metadata.MetadataSubcommandName

	// HookSubcommandName is the name of the plugin subcommand
	// which must be implemented by plugins declaring support
	// for hooks in their metadata.
	//
	// Deprecated: use [metadata.HookSubcommandName]. This alias will be removed in a future release.
	HookSubcommandName = metadata.HookSubcommandName
)
View Source
const (
	// ReexecEnvvar is the name of an ennvar which is set to the command
	// used to originally invoke the docker CLI when executing a
	// plugin. Assuming $PATH and $CWD remain unchanged this should allow
	// the plugin to re-execute the original CLI.
	//
	// Deprecated: use [metadata.ReexecEnvvar]. This alias will be removed in the next release.
	ReexecEnvvar = metadata.ReexecEnvvar
)

Variables

This section is empty.

Functions

func AddPluginCommandStubs

func AddPluginCommandStubs(dockerCLI config.Provider, rootCmd *cobra.Command) (err error)

AddPluginCommandStubs adds a stub cobra.Commands for each valid and invalid plugin. The command stubs will have several annotations added, see `CommandAnnotationPlugin*`.

func IsNotFound deprecated

func IsNotFound(err error) bool

IsNotFound is true if the given error is due to a plugin not being found.

Deprecated: use errdefs.IsNotFound.

func IsPluginCommand

func IsPluginCommand(cmd *cobra.Command) bool

IsPluginCommand checks if the given cmd is a plugin-stub.

func PluginRunCommand

func PluginRunCommand(dockerCli config.Provider, name string, rootcmd *cobra.Command) (*exec.Cmd, error)

PluginRunCommand returns an os/exec.Cmd which when os/exec.Cmd.Run will execute the named plugin. The rootcmd argument is referenced to determine the set of builtin commands in order to detect conficts. The error returned satisfies the errdefs.IsNotFound predicate if no plugin was found or if the first candidate plugin was invalid somehow.

func RunCLICommandHooks

func RunCLICommandHooks(ctx context.Context, dockerCLI config.Provider, rootCmd, subCommand *cobra.Command, cmdErrorMessage string)

RunCLICommandHooks is the entrypoint into the hooks execution flow after a main CLI command was executed. It calls the hook subcommand for all present CLI plugins that declare support for hooks in their metadata and parses/prints their responses.

func RunPluginHooks

func RunPluginHooks(ctx context.Context, dockerCLI config.Provider, rootCmd, subCommand *cobra.Command, args []string)

RunPluginHooks is the entrypoint for the hooks execution flow after a plugin command was just executed by the CLI.

Types

type HookPluginData

type HookPluginData struct {
	// RootCmd is a string representing the matching hook configuration
	// which is currently being invoked. If a hook for `docker context` is
	// configured and the user executes `docker context ls`, the plugin will
	// be invoked with `context`.
	RootCmd      string
	Flags        map[string]string
	CommandError string
}

HookPluginData is the type representing the information that plugins declaring support for hooks get passed when being invoked following a CLI command execution.

type Metadata deprecated

type Metadata = metadata.Metadata

Metadata provided by the plugin.

Deprecated: use metadata.Metadata. This alias will be removed in a future release.

type Plugin

type Plugin struct {
	metadata.Metadata

	Name string `json:",omitempty"`
	Path string `json:",omitempty"`

	// Err is non-nil if the plugin failed one of the candidate tests.
	Err error `json:",omitempty"`

	// ShadowedPaths contains the paths of any other plugins which this plugin takes precedence over.
	ShadowedPaths []string `json:",omitempty"`
}

Plugin represents a potential plugin with all it's metadata.

func GetPlugin

func GetPlugin(name string, dockerCLI config.Provider, rootcmd *cobra.Command) (*Plugin, error)

GetPlugin returns a plugin on the system by its name

func ListPlugins

func ListPlugins(dockerCli config.Provider, rootcmd *cobra.Command) ([]Plugin, error)

ListPlugins produces a list of the plugins available on the system

func (*Plugin) MarshalJSON

func (p *Plugin) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler to handle marshaling the [Plugin.Err] field (Go doesn't marshal errors by default).

func (*Plugin) RunHook

func (p *Plugin) RunHook(ctx context.Context, hookData HookPluginData) ([]byte, error)

RunHook executes the plugin's hooks command and returns its unprocessed output.

Jump to

Keyboard shortcuts

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