plugin

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BasePlugin

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

BasePlugin provides a basic implementation that plugins can embed

func NewBasePlugin

func NewBasePlugin(name, version, description string) *BasePlugin

NewBasePlugin creates a new base plugin

func (*BasePlugin) Cleanup

func (bp *BasePlugin) Cleanup() error

Cleanup cleans up the plugin

func (*BasePlugin) Description

func (bp *BasePlugin) Description() string

Description returns the plugin description

func (*BasePlugin) Execute

func (bp *BasePlugin) Execute(ctx context.Context, args []string) (interface{}, error)

Execute executes the plugin (should be overridden by actual plugins)

func (*BasePlugin) Initialize

func (bp *BasePlugin) Initialize(config map[string]interface{}) error

Initialize initializes the plugin

func (*BasePlugin) IsInitialized

func (bp *BasePlugin) IsInitialized() bool

IsInitialized returns whether the plugin is initialized

func (*BasePlugin) Name

func (bp *BasePlugin) Name() string

Name returns the plugin name

func (*BasePlugin) Version

func (bp *BasePlugin) Version() string

Version returns the plugin version

type Plugin

type Plugin interface {
	Name() string
	Version() string
	Description() string
	Initialize(config map[string]interface{}) error
	Execute(ctx context.Context, args []string) (interface{}, error)
	Cleanup() error
}

Plugin interface defines the contract for AlloraCLI plugins

type PluginConfig

type PluginConfig struct {
	Directory      string   `json:"directory" yaml:"directory"`
	AutoUpdate     bool     `json:"auto_update" yaml:"auto_update"`
	AllowedSources []string `json:"allowed_sources" yaml:"allowed_sources"`
	Timeout        int      `json:"timeout" yaml:"timeout"`
	MaxPlugins     int      `json:"max_plugins" yaml:"max_plugins"`
}

PluginConfig represents plugin configuration

type PluginInfo

type PluginInfo struct {
	Name        string                 `json:"name"`
	Version     string                 `json:"version"`
	Description string                 `json:"description"`
	Status      string                 `json:"status"`
	Path        string                 `json:"path"`
	Config      map[string]interface{} `json:"config"`
	LoadedAt    time.Time              `json:"loaded_at"`
	LastUsed    time.Time              `json:"last_used"`
}

PluginInfo represents plugin information

type PluginManager

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

PluginManager manages plugin lifecycle

func NewPluginManager

func NewPluginManager(config *PluginConfig) *PluginManager

NewPluginManager creates a new plugin manager

func (*PluginManager) ExecutePlugin

func (pm *PluginManager) ExecutePlugin(ctx context.Context, name string, args []string) (interface{}, error)

ExecutePlugin executes a plugin with given arguments

func (*PluginManager) GetPlugin

func (pm *PluginManager) GetPlugin(name string) (Plugin, error)

GetPlugin retrieves a plugin by name

func (*PluginManager) GetPluginConfig

func (pm *PluginManager) GetPluginConfig() *PluginConfig

GetPluginConfig returns the plugin configuration

func (*PluginManager) InstallPlugin

func (pm *PluginManager) InstallPlugin(source, name string) error

InstallPlugin installs a plugin from a source

func (*PluginManager) ListPlugins

func (pm *PluginManager) ListPlugins() []*PluginInfo

ListPlugins returns a list of all loaded plugins

func (*PluginManager) LoadPlugin

func (pm *PluginManager) LoadPlugin(pluginPath string) error

LoadPlugin loads a plugin from file

func (*PluginManager) LoadPluginsFromDirectory

func (pm *PluginManager) LoadPluginsFromDirectory(dir string) error

LoadPluginsFromDirectory loads all plugins from a directory

func (*PluginManager) RefreshPlugins

func (pm *PluginManager) RefreshPlugins() error

RefreshPlugins reloads all plugins from the configured directory

func (*PluginManager) Shutdown

func (pm *PluginManager) Shutdown() error

Shutdown shuts down the plugin manager and cleans up all plugins

func (*PluginManager) UnloadPlugin

func (pm *PluginManager) UnloadPlugin(name string) error

UnloadPlugin unloads a plugin

func (*PluginManager) UpdatePluginConfig

func (pm *PluginManager) UpdatePluginConfig(config *PluginConfig) error

UpdatePluginConfig updates the plugin configuration

func (*PluginManager) ValidatePlugin

func (pm *PluginManager) ValidatePlugin(pluginPath string) error

ValidatePlugin validates a plugin before loading

Jump to

Keyboard shortcuts

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