Help us shape the future of Go! Take the 2026 Go Developer Survey

plugins

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2021 License: GPL-3.0 Imports: 18 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoPluginWithNameFound = fmt.Errorf("no plugin with that name could be found in the pluginCache")

Functions

This section is empty.

Types

type CommandSpec added in v0.9.8

type CommandSpec struct {
	Cmd         string        `yaml:"cmd"`
	Help        string        `yaml:"help,omitempty"`
	Subcommands []CommandSpec `yaml:"subcommands,omitempty"`
}

type Config added in v0.9.8

type Config struct {
	Out    io.Writer
	Fs     afero.Fs
	Pather devctlpath.Pather
}

type ConfigSpec added in v0.9.8

type ConfigSpec struct {
	Values  map[string]string
	Static  map[string]interface{}
	Dynamic map[string]string
}

func ResolveDynamic added in v0.9.8

func ResolveDynamic(c ConfigSpec, e *Engine) (cfg ConfigSpec, err error)

type Engine added in v0.9.8

type Engine struct {
	// contains filtered or unexported fields
}

func NewEngine added in v0.9.8

func NewEngine(opts ...Option) *Engine

func (*Engine) Execute added in v0.9.8

func (e *Engine) Execute(pluginName string, args []string) (err error)

Execute tries to execute a named plugin from the cache

func (*Engine) LoadPlugin added in v0.9.8

func (e *Engine) LoadPlugin(manifestPath string) (p *Plugin, err error)

func (*Engine) LoadPlugins added in v0.9.8

func (e *Engine) LoadPlugins() (plugins Plugins)

func (*Engine) NewExecutablePlugin added in v0.9.8

func (e *Engine) NewExecutablePlugin(p *Plugin, config map[string]interface{}) (execP *ExecutablePlugin, err error)

type ExecutablePlugin added in v0.9.8

type ExecutablePlugin struct {
	*Plugin
	Config reflect.Value
	ExecFn reflect.Value
}

func (*ExecutablePlugin) Exec added in v0.9.8

func (execP *ExecutablePlugin) Exec(args []string) (err error)

type Manifest added in v0.9.8

type Manifest struct {
	Version    string `yaml:"version"`
	PluginSpec `yaml:"plugin"`
}

type Option added in v0.9.8

type Option func(c *Config) *Config

type Plugin added in v0.9.0

type Plugin struct {
	*Manifest
	Source   string
	RootPath string
}

type PluginSpec added in v0.9.8

type PluginSpec struct {
	*CommandSpec `yaml:"cmd,inline"`
	Name         string     `yaml:"name"`
	Pkg          string     `yaml:"pkg"`
	Config       ConfigSpec `yaml:"config,omitempty"`
}

type Plugins added in v0.9.8

type Plugins []*Plugin

Jump to

Keyboard shortcuts

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