in internal/task/plugins_config.go [23:57]
func LoadConfigPlugins(
ctx context.Context,
reg config.ProviderRegistry,
k6 K6,
) (func(), error) {
if len(k6.ConfigPlugins) < 1 {
return func() {}, nil
}
var settingsList []configplugin.ClientBinarySettings
for _, plugin := range k6.ConfigPlugins {
// TODO: validation settings
binaryPath := plugin.BinaryPath
if binaryPath == "" {
if p, ok := resolvePluginBinaryPathFromName(plugin.Namespace); ok {
binaryPath = p
} else {
return func() {}, fmt.Errorf("plugin binary not found: %s", plugin.Namespace)
}
}
// shallow copy the args to avoid unexpected mutation
args := make([]string, len(plugin.Args))
copy(args, plugin.Args)
settings := configplugin.ClientBinarySettings{
Namespace: plugin.Namespace,
Path: binaryPath,
Args: args,
}
settingsList = append(settingsList, settings)
}
return configplugin.RegisterFromClientBinaries(ctx, reg, settingsList)
}