mirror of
https://github.com/ipfs/kubo.git
synced 2025-09-11 06:52:52 +08:00
44 lines
765 B
Go
44 lines
765 B
Go
package loader
|
|
|
|
import (
|
|
"github.com/ipfs/go-ipfs/core/coredag"
|
|
"github.com/ipfs/go-ipfs/plugin"
|
|
|
|
ipld "gx/ipfs/Qme5bWv7wtjUNGsK2BNGVUFPKiuxWrsqrtvYwCLRw8YFES/go-ipld-format"
|
|
)
|
|
|
|
func initialize(plugins []plugin.Plugin) error {
|
|
for _, p := range plugins {
|
|
err := p.Init()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func run(plugins []plugin.Plugin) error {
|
|
for _, pl := range plugins {
|
|
err := runIPLDPlugin(pl)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func runIPLDPlugin(pl plugin.Plugin) error {
|
|
ipldpl, ok := pl.(plugin.PluginIPLD)
|
|
if !ok {
|
|
return nil
|
|
}
|
|
|
|
err := ipldpl.RegisterBlockDecoders(ipld.DefaultBlockDecoder)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return ipldpl.RegisterInputEncParsers(coredag.DefaultInputEncParsers)
|
|
}
|