package integration import ( "context" "github.com/pkg/errors" ) type Integration interface { Integration() } type OnStartup interface { Integration OnStartup(ctx context.Context) error } func RunOnStartup(ctx context.Context, integrations []Integration) error { for _, it := range integrations { onStartup, ok := it.(OnStartup) if !ok { continue } if err := onStartup.OnStartup(ctx); err != nil { return errors.WithStack(err) } } return nil }