func()

in internal/output/gcppubsub/gcppubsub.go [161:185]


func (o *Output) createSubscription() error {
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	sub := o.client.Subscription(o.opts.GCPPubsubOptions.Subscription)
	exists, err := sub.Exists(ctx)
	if err != nil {
		return fmt.Errorf("failed to check if sub exists: %w", err)
	}

	if !exists {
		_, err := o.client.CreateSubscription(
			ctx,
			o.opts.GCPPubsubOptions.Subscription,
			pubsub.SubscriptionConfig{
				Topic: o.client.Topic(o.opts.GCPPubsubOptions.Topic),
			},
		)
		if err != nil {
			return fmt.Errorf("failed to create subscription: %w", err)
		}
	}

	return nil
}