Documentation
¶
Index ¶
- type BasePlugin
- func (bp *BasePlugin) Cleanup() error
- func (bp *BasePlugin) Description() string
- func (bp *BasePlugin) Execute(ctx context.Context, args []string) (interface{}, error)
- func (bp *BasePlugin) Initialize(config map[string]interface{}) error
- func (bp *BasePlugin) IsInitialized() bool
- func (bp *BasePlugin) Name() string
- func (bp *BasePlugin) Version() string
- type Plugin
- type PluginConfig
- type PluginInfo
- type PluginManager
- func (pm *PluginManager) ExecutePlugin(ctx context.Context, name string, args []string) (interface{}, error)
- func (pm *PluginManager) GetPlugin(name string) (Plugin, error)
- func (pm *PluginManager) GetPluginConfig() *PluginConfig
- func (pm *PluginManager) InstallPlugin(source, name string) error
- func (pm *PluginManager) ListPlugins() []*PluginInfo
- func (pm *PluginManager) LoadPlugin(pluginPath string) error
- func (pm *PluginManager) LoadPluginsFromDirectory(dir string) error
- func (pm *PluginManager) RefreshPlugins() error
- func (pm *PluginManager) Shutdown() error
- func (pm *PluginManager) UnloadPlugin(name string) error
- func (pm *PluginManager) UpdatePluginConfig(config *PluginConfig) error
- func (pm *PluginManager) ValidatePlugin(pluginPath string) error
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) 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) 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