(path string, args []string)
| 320 | } |
| 321 | |
| 322 | func loadDataClientPlugin(path string, args []string) (routing.DataClient, error) { |
| 323 | mod, err := plugin.Open(path) |
| 324 | if err != nil { |
| 325 | return nil, fmt.Errorf("open data client module %s: %s", path, err) |
| 326 | } |
| 327 | |
| 328 | conf, err := readPluginConfig(path) |
| 329 | if err != nil { |
| 330 | return nil, fmt.Errorf("failed to read config for %s: %s", path, err) |
| 331 | } |
| 332 | |
| 333 | sym, err := mod.Lookup("InitDataClient") |
| 334 | if err != nil { |
| 335 | return nil, fmt.Errorf("lookup module symbol failed for %s: %s", path, err) |
| 336 | } |
| 337 | return initDataClientPlugin(sym, path, append(conf, args...)) |
| 338 | } |
| 339 | |
| 340 | func initDataClientPlugin(sym plugin.Symbol, path string, args []string) (routing.DataClient, error) { |
| 341 | fn, ok := sym.(func([]string) (routing.DataClient, error)) |
no test coverage detected
searching dependent graphs…