1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-05-17 06:57:40 +08:00
Files
kubo/plugin/loader/load_unix.go
2022-07-06 18:40:37 +02:00

36 lines
612 B
Go

//go:build cgo && !noplugin && (linux || darwin || freebsd)
// +build cgo
// +build !noplugin
// +build linux darwin freebsd
package loader
import (
"errors"
"plugin"
iplugin "github.com/ipfs/kubo/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
}