mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-22 02:47:48 +08:00
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Check / lint (push) Waiting to run
Docker Check / build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
* ci: optimize build workflows - use go version from go.mod instead of hardcoding - group platforms by OS for parallel builds - remove legacy try-build targets * fix: checkout before setup-go in all workflows setup-go needs go.mod to be present, so checkout must happen first * chore: remove deprecated // +build syntax go 1.17+ uses //go:build, the old syntax is no longer needed * simplify: remove nofuse tag from CI workflows - workflows now rely on platform build constraints - keep make nofuse target for manual builds - remove unused appveyor.yml * ci: remove legacy travis variable and fix gateway-conformance - remove TRAVIS env variable from 4 workflows - fix gateway-conformance checkout path to match working-directory - replace deprecated cache-go-action with built-in setup-go caching
33 lines
547 B
Go
33 lines
547 B
Go
//go:build cgo && !noplugin && (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
|
|
}
|