package tool | |
import ( | |
"fmt" | |
"github.com/alist-org/alist/v3/internal/model" | |
) | |
var ( | |
Tools = make(ToolsManager) | |
) | |
type ToolsManager map[string]Tool | |
func (t ToolsManager) Get(name string) (Tool, error) { | |
if tool, ok := t[name]; ok { | |
return tool, nil | |
} | |
return nil, fmt.Errorf("tool %s not found", name) | |
} | |
func (t ToolsManager) Add(tool Tool) { | |
t[tool.Name()] = tool | |
} | |
func (t ToolsManager) Names() []string { | |
names := make([]string, 0, len(t)) | |
for name := range t { | |
names = append(names, name) | |
} | |
return names | |
} | |
func (t ToolsManager) Items() []model.SettingItem { | |
var items []model.SettingItem | |
for _, tool := range t { | |
items = append(items, tool.Items()...) | |
} | |
return items | |
} | |