diff options
| author | historia <[not public]> | 2026-06-11 04:46:27 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-11 08:58:37 +0000 |
| commit | 1b9e2da3b3c438d8dc53d3489725dd5ba0022777 (patch) | |
| tree | 62264f24420bf4cfaa734942c65cc8dd45ba3d3b /internal/config | |
| parent | 06c02a697e5daf8832a462de5970dd4c0e13a02c (diff) | |
| download | thehouseoficarus-1b9e2da3b3c438d8dc53d3489725dd5ba0022777.tar.gz | |
feat: web client, get/drop updates and fixes
Diffstat (limited to 'internal/config')
| -rw-r--r-- | internal/config/config.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..8ff5740 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,59 @@ +package config + +import ( + "os" + + "gopkg.in/yaml.v3" +) + +type Config struct { + Telnet TelnetConfig `yaml:"telnet"` + HTTP HTTPConfig `yaml:"http"` + HTTPS HTTPSConfig `yaml:"https"` +} + +type TelnetConfig struct { + Enabled bool `yaml:"enabled"` + Port int `yaml:"port"` +} + +type HTTPConfig struct { + Enabled bool `yaml:"enabled"` + Port int `yaml:"port"` +} + +type HTTPSConfig struct { + Enabled bool `yaml:"enabled"` + Port int `yaml:"port"` + CertFile string `yaml:"cert_file"` + KeyFile string `yaml:"key_file"` +} + +func Default() *Config { + return &Config{ + Telnet: TelnetConfig{ + Enabled: true, + Port: 4000, + }, + HTTP: HTTPConfig{ + Enabled: false, + Port: 8080, + }, + HTTPS: HTTPSConfig{ + Enabled: false, + Port: 8443, + }, + } +} + +func Load(path string) (*Config, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, err + } + cfg := Default() + if err := yaml.Unmarshal(data, cfg); err != nil { + return nil, err + } + return cfg, nil +} |
