plugins

package
v0.0.0-...-d78e010 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

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

Plugin represents a loadable plugin interface

type PluginInfo

type PluginInfo struct {
	Name        string `json:"name"`
	Version     string `json:"version"`
	Description string `json:"description"`
	Loaded      bool   `json:"loaded"`
}

PluginInfo holds information about a plugin

type PluginManager

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

PluginManager manages loaded plugins

func NewPluginManager

func NewPluginManager() *PluginManager

NewPluginManager creates a new plugin manager

func (*PluginManager) AddSafeDirectory

func (pm *PluginManager) AddSafeDirectory(dir string)

AddSafeDirectory adds a directory to the list of safe plugin directories

func (*PluginManager) AddTrustedChecksum

func (pm *PluginManager) AddTrustedChecksum(path, checksum string)

AddTrustedChecksum adds a trusted checksum for a plugin

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, bool)

GetPlugin returns a plugin by name

func (*PluginManager) GetPluginInfo

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

GetPluginInfo returns information about all plugins

func (*PluginManager) GetSafeDirectories

func (pm *PluginManager) GetSafeDirectories() []string

GetSafeDirectories returns the list of safe plugin directories

func (*PluginManager) InitializePlugin

func (pm *PluginManager) InitializePlugin(ctx context.Context, name string, config map[string]interface{}) error

InitializePlugin initializes a plugin with configuration

func (*PluginManager) ListPlugins

func (pm *PluginManager) ListPlugins() map[string]Plugin

ListPlugins returns all loaded plugins

func (*PluginManager) LoadPlugin

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

LoadPlugin loads a plugin from a shared library file with security validation

func (*PluginManager) Shutdown

func (pm *PluginManager) Shutdown() error

Shutdown gracefully shuts down all plugins

func (*PluginManager) UnloadPlugin

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

UnloadPlugin unloads a plugin

Jump to

Keyboard shortcuts

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