This repository has been archived on 2024-02-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
astontest/internal/application/config.go

32 lines
697 B
Go

package application
import (
"context"
"fmt"
"time"
"github.com/sethvargo/go-envconfig"
)
type Config struct {
Debug bool `env:"DEBUG"`
DiscoveryPort uint16 `env:"DISCOVERY_PORT,default=4321"`
BroadcastInterval time.Duration `env:"BROADCAST_INTERVAL,default=5s"`
MessagingPort uint16 `env:"MESSAGING_PORT,default=4322"`
MessagingInterval time.Duration `env:"MESSAGING_INTERVAL,default=1s"`
RandomMessageSize uint `env:"RANDOM_MESSAGE_SIZE,default=10"`
}
func NewConfig(ctx context.Context) (Config, error) {
cfg := Config{}
if err := envconfig.Process(ctx, &cfg); err != nil {
return Config{}, fmt.Errorf("process envs: %w", err)
}
return cfg, nil
}