sample/plugin-hello/main.go (33 lines of code) (raw):
package main
import (
"context"
"fmt"
"github.com/Azure/k6ctl"
)
type params struct {
Message string `mapstructure:"message"`
}
func (p params) Defaulting(
ctx context.Context,
target k6ctl.Target,
) (params, error) {
if p.Message == "" {
return params{
Message: "world",
}, nil
}
return p, nil
}
func main() {
reg := k6ctl.NewConfigProviderRegistry()
reg.Register(
k6ctl.ProvideConfig(
"message",
k6ctl.LoadConfigForStruct[params],
func(ctx context.Context, target k6ctl.Target, p params) (string, error) {
return fmt.Sprintf("hello %s", p.Message), nil
},
),
)
k6ctl.ServeConfigRegistryPlugin(reg)
}