plugin

package
v0.0.0-...-53b23ba Latest Latest
Warning

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

Go to latest
Published: May 30, 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 Dependency

type Dependency struct {
	Name     string `json:"name"`     // 依赖插件名称
	Version  string `json:"version"`  // 版本要求
	Optional bool   `json:"optional"` // 是否为可选依赖
}

Dependency 表示插件依赖关系

type DependencyManager

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

DependencyManager 插件依赖管理器

func NewDependencyManager

func NewDependencyManager(pluginsDir string) *DependencyManager

NewDependencyManager 创建依赖管理器

func (*DependencyManager) BuildDependencyGraph

func (dm *DependencyManager) BuildDependencyGraph() error

BuildDependencyGraph 构建依赖关系图

func (*DependencyManager) GetAllPlugins

func (dm *DependencyManager) GetAllPlugins() map[string]*PluginInfo

GetAllPlugins 获取所有已安装的插件

func (*DependencyManager) GetLoadOrder

func (dm *DependencyManager) GetLoadOrder() []string

GetLoadOrder 获取插件加载顺序

func (*DependencyManager) GetMissingDependencies

func (dm *DependencyManager) GetMissingDependencies(info *PluginInfo) []Dependency

GetMissingDependencies 获取缺失的依赖

func (*DependencyManager) GetPluginInfo

func (dm *DependencyManager) GetPluginInfo(slug string) *PluginInfo

GetPluginInfo 获取插件信息

func (*DependencyManager) LoadPlugins

func (dm *DependencyManager) LoadPlugins() error

LoadPlugins 加载所有插件信息

func (*DependencyManager) ValidatePlugin

func (dm *DependencyManager) ValidatePlugin(info *PluginInfo) error

ValidatePlugin 验证插件是否可以安装

type Hook

type Hook func(args ...interface{}) interface{}

Hook 钩子函数类型

type Manager

type Manager struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Manager 插件管理器

func NewManager

func NewManager(pluginsDir string) *Manager

NewManager 创建新的插件管理器

func (*Manager) ExecuteHook

func (m *Manager) ExecuteHook(name string, args ...interface{}) []interface{}

ExecuteHook 执行钩子

func (*Manager) GetAllPlugins

func (m *Manager) GetAllPlugins() map[string]*Plugin

GetAllPlugins 获取所有已安装的插件

func (*Manager) GetPlugin

func (m *Manager) GetPlugin(slug string) *Plugin

GetPlugin 获取插件实例

func (*Manager) GetPluginInfo

func (m *Manager) GetPluginInfo(slug string) *PluginInfo

GetPluginInfo 获取插件信息

func (*Manager) InstallPlugin

func (m *Manager) InstallPlugin(info *PluginInfo, pluginFile string) error

InstallPlugin 安装新插件

func (*Manager) LoadPlugins

func (m *Manager) LoadPlugins() error

LoadPlugins 加载所有插件

func (*Manager) RegisterHook

func (m *Manager) RegisterHook(name string, hook Hook)

RegisterHook 注册钩子

func (*Manager) UninstallPlugin

func (m *Manager) UninstallPlugin(slug string) error

UninstallPlugin 卸载插件

type PluginInfo

type PluginInfo struct {
	Name         string       `json:"name"`
	Slug         string       `json:"slug"`
	Version      string       `json:"version"`
	Dependencies []Dependency `json:"dependencies"`
	Conflicts    []string     `json:"conflicts"`   // 冲突的插件
	LoadAfter    []string     `json:"load_after"`  // 在指定插件之后加载
	LoadBefore   []string     `json:"load_before"` // 在指定插件之前加载
}

PluginInfo 插件信息

Jump to

Keyboard shortcuts

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