kubo/plugin/loader/load_unix.go
2020-08-08 22:53:18 -04:00

34 lines
537 B
Go

// +build cgo,!noplugin
// +build linux darwin
package loader
import (
"errors"
"plugin"
iplugin "github.com/ipfs/go-ipfs/plugin"
)
func init() {
loadPluginFunc = unixLoadPlugin
}
func unixLoadPlugin(fi string) ([]iplugin.Plugin, error) {
pl, err := plugin.Open(fi)
if err != nil {
return nil, err
}
pls, err := pl.Lookup("Plugins")
if err != nil {
return nil, err
}
typePls, ok := pls.(*[]iplugin.Plugin)
if !ok {
return nil, errors.New("filed 'Plugins' didn't contain correct type")
}
return *typePls, nil
}