package config // Default Settings var DefaultConfig = &AppConfig{ Environment: "development", Version: getVersion(), Logging: defaultLoggingConfig, HTTP: defaultHTTPConfig, OTEL: defaultOTELConfig, GRPC: defaultGRPCConfig, } type AppConfig struct { Name string `yaml:"name,omitempty" env:"APP_NAME"` Environment string `yaml:"environment,omitempty" env:"APP_ENVIRONMENT"` // This should either be set by ldflags, such as with // go build -ldflags "-X gitea.libretechconsulting.com/rmcguire/go-app/pkg/config.Version=$(VERSION)" // or allow this to use build meta. Will default to (devel) Version string `yaml:"version,omitempty" env:"APP_VERSION"` Logging *LogConfig `yaml:"logging,omitempty"` HTTP *HTTPConfig `yaml:"http,omitempty"` OTEL *OTELConfig `yaml:"otel,omitempty"` GRPC *GRPCConfig `yaml:"grpc,omitempty"` } func (ac *AppConfig) HTTPEnabled() bool { if ac.HTTP != nil && ac.HTTP.Enabled { return true } return false } func (ac *AppConfig) GRPCEnabled() bool { if ac.GRPC != nil && ac.GRPC.Enabled { return true } return false } func (ac *AppConfig) OTELEnabled() bool { if ac.OTEL != nil && ac.OTEL.Enabled { return true } return false }