package main import ( "fmt" "os" yaml "gopkg.in/yaml.v3" ) const ( defaultPort = 7099 defaultInstanceName = "BBJ" defaultHost = "127.0.0.1" ) type Config struct { Admins []string Port int Host string InstanceName string `yaml:"instance_name"` AllowAnon bool `yaml:"allow_anon"` Debug bool } func parseConfig(configPath string) (*Config, error) { cfgBytes, err := os.ReadFile(configPath) if err != nil { return nil, fmt.Errorf("failed to read config file: %w", err) } var cfg Config if err := yaml.Unmarshal(cfgBytes, &cfg); err != nil { return nil, fmt.Errorf("failed to parse config: %w", err) } if cfg.Port == 0 { cfg.Port = defaultPort } if cfg.InstanceName == "" { cfg.InstanceName = defaultInstanceName } if cfg.Host == "" { cfg.Host = defaultHost } return &cfg, nil }