package main import ( "fmt" "os" yaml "gopkg.in/yaml.v3" ) const ( defaultPort = 7099 defaultInstanceName = "BBJ" defaultHost = "127.0.0.1" defaultDBPath = "db.sqlite3" ) 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 } if cfg.DBPath == "" { cfg.DBPath = defaultDBPath } return &cfg, nil }