Documentation
¶
Index ¶
- type Dependency
- type DependencyManager
- func (dm *DependencyManager) BuildDependencyGraph() error
- func (dm *DependencyManager) GetAllPlugins() map[string]*PluginInfo
- func (dm *DependencyManager) GetLoadOrder() []string
- func (dm *DependencyManager) GetMissingDependencies(info *PluginInfo) []Dependency
- func (dm *DependencyManager) GetPluginInfo(slug string) *PluginInfo
- func (dm *DependencyManager) LoadPlugins() error
- func (dm *DependencyManager) ValidatePlugin(info *PluginInfo) error
- type Hook
- type Manager
- func (m *Manager) ExecuteHook(name string, args ...interface{}) []interface{}
- func (m *Manager) GetAllPlugins() map[string]*Plugin
- func (m *Manager) GetPlugin(slug string) *Plugin
- func (m *Manager) GetPluginInfo(slug string) *PluginInfo
- func (m *Manager) InstallPlugin(info *PluginInfo, pluginFile string) error
- func (m *Manager) LoadPlugins() error
- func (m *Manager) RegisterHook(name string, hook Hook)
- func (m *Manager) UninstallPlugin(slug string) error
- type PluginInfo
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 Manager ¶
Manager 插件管理器
func (*Manager) ExecuteHook ¶
ExecuteHook 执行钩子
func (*Manager) GetAllPlugins ¶
GetAllPlugins 获取所有已安装的插件
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) RegisterHook ¶
RegisterHook 注册钩子
func (*Manager) UninstallPlugin ¶
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 插件信息
Click to show internal directories.
Click to hide internal directories.