mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 18:37:45 +08:00
Load static plugins in init
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
This commit is contained in:
parent
c154f7f01e
commit
5bfb8867f7
@ -174,10 +174,11 @@ func makeExecutor(req *cmds.Request, env interface{}) (cmds.Executor, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ok {
|
||||
if _, err := loader.LoadPlugins(pluginpath); err != nil {
|
||||
log.Error("error loading plugins: ", err)
|
||||
}
|
||||
if !ok {
|
||||
pluginpath = ""
|
||||
}
|
||||
if _, err := loader.LoadPlugins(pluginpath); err != nil {
|
||||
log.Error("error loading plugins: ", err)
|
||||
}
|
||||
|
||||
exctr = cmds.NewExecutor(req.Root)
|
||||
|
||||
@ -22,20 +22,22 @@ func LoadPlugins(pluginDir string) ([]plugin.Plugin, error) {
|
||||
plMap[v.Name()] = v
|
||||
}
|
||||
|
||||
newPls, err := loadDynamicPlugins(pluginDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, pl := range newPls {
|
||||
if ppl, ok := plMap[pl.Name()]; ok {
|
||||
// plugin is already preloaded
|
||||
return nil, fmt.Errorf(
|
||||
"plugin: %s, is duplicated in version: %s, "+
|
||||
"while trying to load dynamically: %s",
|
||||
ppl.Name(), ppl.Version(), pl.Version())
|
||||
if pluginDir != "" {
|
||||
newPls, err := loadDynamicPlugins(pluginDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, pl := range newPls {
|
||||
if ppl, ok := plMap[pl.Name()]; ok {
|
||||
// plugin is already preloaded
|
||||
return nil, fmt.Errorf(
|
||||
"plugin: %s, is duplicated in version: %s, "+
|
||||
"while trying to load dynamically: %s",
|
||||
ppl.Name(), ppl.Version(), pl.Version())
|
||||
}
|
||||
plMap[pl.Name()] = pl
|
||||
}
|
||||
plMap[pl.Name()] = pl
|
||||
}
|
||||
|
||||
pls := make([]plugin.Plugin, 0, len(plMap))
|
||||
@ -43,7 +45,7 @@ func LoadPlugins(pluginDir string) ([]plugin.Plugin, error) {
|
||||
pls = append(pls, v)
|
||||
}
|
||||
|
||||
err = initialize(pls)
|
||||
err := initialize(pls)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package fsrepo
|
||||
package fsrepo_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -7,7 +7,10 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
config "gx/ipfs/QmbK4EmM2Xx5fmbqK38TGP3PpY66r3tkXLZTcc7dF9mFwM/go-ipfs-config"
|
||||
"github.com/ipfs/go-ipfs/plugin/loader"
|
||||
"github.com/ipfs/go-ipfs/repo/fsrepo"
|
||||
|
||||
"gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
|
||||
)
|
||||
|
||||
// note: to test sorting of the mountpoints in the disk spec they are
|
||||
@ -72,6 +75,8 @@ var measureConfig = []byte(`{
|
||||
}`)
|
||||
|
||||
func TestDefaultDatastoreConfig(t *testing.T) {
|
||||
loader.LoadPlugins("")
|
||||
|
||||
dir, err := ioutil.TempDir("", "ipfs-datastore-config-test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@ -84,7 +89,7 @@ func TestDefaultDatastoreConfig(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dsc, err := AnyDatastoreConfig(config.Spec)
|
||||
dsc, err := fsrepo.AnyDatastoreConfig(config.Spec)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -122,7 +127,7 @@ func TestLevelDbConfig(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dsc, err := AnyDatastoreConfig(spec)
|
||||
dsc, err := fsrepo.AnyDatastoreConfig(spec)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -160,7 +165,7 @@ func TestFlatfsConfig(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dsc, err := AnyDatastoreConfig(spec)
|
||||
dsc, err := fsrepo.AnyDatastoreConfig(spec)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -198,7 +203,7 @@ func TestMeasureConfig(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dsc, err := AnyDatastoreConfig(spec)
|
||||
dsc, err := fsrepo.AnyDatastoreConfig(spec)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user